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

Messages postés
496
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
8 novembre 2019
- - Dernière réponse : msi79
Messages postés
496
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
8 novembre 2019
- 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());
}
Afficher la suite 

4 réponses

Messages postés
14597
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
2 décembre 2019
137
0
Merci
Pourquoi utiliser mysql_num_rows alors qu'une requête SELECT ... COUNT(*) ... ferait la même chose ?
Commenter la réponse de NHenry
Messages postés
26945
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 décembre 2019
318
0
Merci
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
Commenter la réponse de jordane45
Messages postés
496
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
8 novembre 2019
0
Merci
je ne comprend pas cette question :
PS : tu es sûr que ton champ "perode" ... ce ne serait pas avec un "i" : periode ?
jordane45
Messages postés
26945
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 décembre 2019
318 -
Juste savoir si ton champ est bien orthographié ou non...
Commenter la réponse de msi79
Messages postés
496
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
8 novembre 2019
0
Merci
AH OOK .ça marche . merci encore . avec toi j'avance dans mon projet
Commenter la réponse de msi79