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
14733
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 octobre 2020
146
Pourquoi utiliser mysql_num_rows alors qu'une requête SELECT ... COUNT(*) ... ferait la même chose ?
Messages postés
29848
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 octobre 2020
338
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
29848
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 octobre 2020
338
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