Probleme de mise a jour de champ dans ma base de données [Résolu]

Signaler
Messages postés
498
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
1 mars 2020
-
Messages postés
498
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
1 mars 2020
-
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

Messages postés
14689
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
8 août 2020
144
Pourquoi utiliser mysql_num_rows alors qu'une requête SELECT ... COUNT(*) ... ferait la même chose ?
Messages postés
29170
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 août 2020
335
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
Messages postés
498
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
1 mars 2020

je ne comprend pas cette question :
PS : tu es sûr que ton champ "perode" ... ce ne serait pas avec un "i" : periode ?
Messages postés
29170
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 août 2020
335
Juste savoir si ton champ est bien orthographié ou non...
Messages postés
498
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
1 mars 2020

AH OOK .ça marche . merci encore . avec toi j'avance dans mon projet