msi79
Messages postés509Date d'inscriptionlundi 24 août 2009StatutMembreDernière intervention 2 mai 2023
-
13 juil. 2014 à 13:38
msi79
Messages postés509Date d'inscriptionlundi 24 août 2009StatutMembreDerniè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()); }
A voir également:
Probleme de mise a jour de champ dans ma base de données
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