Problème de récupération de données dans une base SQL

Eléphanteau du PHP | 12 Messages

16 nov. 2007, 19:31

Merci de l'info.
Je viens de tester et voilà ce qui se passe :
-lorsque je remplis ce questionnaire pour la première fois, je reçois à la fin le message prévu ("Merci d'avoir rempli ce questionnaire.").
-si je le remplis pour la seconde fois, l'intégration ne se fait pas dans la base sql mais je ne reçois aucun message d'erreur (alors que je devrais voir sur la page suivante "Vous avez déjà rempli ce questionnaire").
J'ai testé :
-avec le "@" devant mysql_query
-sans le "@" devant mysql_query
-avec

Code : Tout sélectionner

if ($sql = '1062') echo "Vous avez déjà répondu au questionnaire";
-sans

Code : Tout sélectionner

if ($sql = '1062') echo "Vous avez déjà répondu au questionnaire";
On est proches de la solution, il ne manque qu'un tout petit bout...!

Eléphanteau du PHP | 12 Messages

16 nov. 2007, 19:40

Par contre, si je simule une autre erreur sql (j'ai par exemple changé le nom de la base dans mon fichier de traitement), il me renvoie bien l'erreur "No database selected" ; il n'y a que l'erreur "duplicate" qui n'apparaît plus.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

16 nov. 2007, 19:58

Tu peux virer le test
if ($sql = '1062')
echo "Vous avez déjà répondu au questionnaire";
Car, tu peux le gérer en bas du script avec le test sur mysql_errno(), comme ça:
// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {
        echo $message;
// sinon c'est ok
} 
else {
        foreach($_POST as $index => $valeur) {
              $$index = mysql_real_escape_string(trim($valeur));
        }

      $computername=$_POST['computername'];
      $computername = $_ENV["COMPUTERNAME"];;

      $rubriquesconsult = $_POST['rubriquesconsult'];
      $sqlrubriquesconsult = '';
      $rubriquesconsult = $_POST['rubriquesconsult'];
      $sqlrubriquesconsult = implode(',',$rubriquesconsult);

      $servicesconsult = $_POST['servicesconsult'];
      $sqlservicesconsult = '';
      $servicesconsult = $_POST['servicesconsult'];
      $sqlservicesconsult = implode(',',$servicesconsult);

      $sql = "INSERT INTO satisfactiondiva VALUES ('$computername', '$nom', '$prenom', '$service',         
                 '$quantiteinfos', '$qualiteinfos', '$clarteinfos', '$faciliteutilisation', '$frequenceconsult', 
                  '$dureeconsult', '$sqlrubriquesconsult', '$sqlservicesconsult', '$servicecorresp', 
                  '$cellulecorresp', '$frequencecreationcontenu', '$outilcomplet', '$souhaits',  
                  '$rubriquesaetoffer', '$remarques')";

       $res = @mysql_query($sql);
       if ($res) {
                   echo $msg_ok;
        } 
       else {
             if ( mysql_errno() != 1062 ) echo mysql_error(); 
             else echo "Vous avez déjà répondu au questionnaire";
        }
}//fin else c'est ok
?>
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 12 Messages

16 nov. 2007, 20:05

C'est exactement ce qu'il me faut ! ça marche nickel.
Merci beaucoup pour ton aide :D

Bonne soirée :!: