Probleme de mise a jour de champ dans ma base de données

Résolu
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 - 13 juil. 2014 à 13:38
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 - 14 juil. 2014 à 19:14
Bonjour,
je voudrais mettre à jour un champ lorsqu'il existe et créer lorsqu'il n'existe pas . mais il se trouve que n'ai pas de mise à jour mais plutôt des insertions

voici mon code :
//verification 
$sql3 = "SELECT matricule FROM tb_classement WHERE matricule='".$matricule."' ";
$req3 = mysql_query($sql3) or die('Erreur SQL !'.$sql3.'<br>'.mysql_error());

// on compte le nombre de résultats
$res3 = mysql_num_rows($req3);

if($res3!=0) // l'url existe déjà, on affiche un message d'erreur
{
mysql_query("UPDATE tb_classement SET classement = '".$rang."' WHERE matricule = '".$classement["matricule"]."' ") or die("error");
}
else // L'url n'existe pas, on insère les informations du formulaire dans la table
{
$sql4 ="INSERT INTO tb_classement(matricule,classement,matiere,perode) VALUES('".$classement["matricule"]."','".$rang."','".$matiere."',NOW())";
$result4 = mysql_query($sql4) or die('Erreur SQL !'.$sql4.'<br>'.mysql_error());
}

4 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
13 juil. 2014 à 14:34
Pourquoi utiliser mysql_num_rows alors qu'une requête SELECT ... COUNT(*) ... ferait la même chose ?
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344
Modifié par jordane45 le 13/07/2014 à 14:51
Bonjour,


http://php.net//manual/fr/function.mysql-num-rows.php

Le nombre de lignes dans un jeu de résultats en cas de succès ou FALSE si une erreur survient.
... Donc... ce n'est jamais égale à 0.


Il faudrait plutôt écrire :

 $sql3 = "SELECT matricule 
                   FROM tb_classement 
                   WHERE matricule='".$matricule"'"; 
    $req3 = mysql_query($sql3) or die('Erreur SQL !'.$sql3.'<br>'.mysql_error());  
     
    // on compte le nombre de résultats 
    $res3 = mysql_num_rows($req3); 
      // pour les tests :
       echo "<br><b>Nb Lignes =</b>".$res3."<br>";
      if($res3){  
          // l'url existe déjà, on affiche un message d'erreur 
           $sqlUpdate="UPDATE tb_classement 
                                SET classement = '".$rang."' 
                             WHERE matricule = '".$classement["matricule"]."'";
           mysql_query($sqlUpdate) or die("error");
        
       } else{  
         // L'url n'existe pas, on insère les informations du formulaire dans la table 
               $sql4 ="INSERT INTO tb_classement
                                    (matricule
                                    ,classement
                                    ,matiere
                                    ,perode) 
                               VALUES(
                                '".$classement["matricule"]."'
                               ,'".$rang."'
                               ,'".$matiere."'
                               ,NOW()
                                )";
                $result4 = mysql_query($sql4) or die('Erreur SQL !'.$sql4.' <br> '.mysql_error()); 
}



PS : tu es sûr que ton champ "perode" ... ce ne serait pas avec un "i" : periode ?

Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
14 juil. 2014 à 16:46
je ne comprend pas cette question :
PS : tu es sûr que ton champ "perode" ... ce ne serait pas avec un "i" : periode ?
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344
14 juil. 2014 à 18:47
Juste savoir si ton champ est bien orthographié ou non...
0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
14 juil. 2014 à 19:14
AH OOK .ça marche . merci encore . avec toi j'avance dans mon projet
0
Rejoignez-nous