Titre: [résolu]probleme de syntaxe if dans mon code
Posté par: GoldRazor le le 02-11-2007 a 01:54:40
Bonjour,
Je ne trouve pas la syntaxe correcte pour faire marcher mon code.
Regardez le code ci dessous :
Je n'arrive pas à resoudre la premiere ligne.
Code:
if($motclef existe dans la base recherche colonne mots ){ mysql_query("UPDATE `recherche` SET `nbr`=`nbr`+1 WHERE `mots`= $motclef"); } else { mysql_query("INSERT INTO recherche(`mots`,`date`,`nbr`) VALUES('".$_GET['mots']."','".date('U')."','1')"); } |
|
Si vous pensez avoir la solution, n'hésitez pas.
Merci |
Titre: Re:probleme de syntaxe if dans mon code
Posté par: lefou le le 02-11-2007 a 10:52:41
Il faudrait que tu fasses une première requête avec un count(nbre d'enregistrements) pour voir si le mot clé est présent dans la base. Ensuite, si le résultat est 0 alors tu génères ta requête d'insertion. |
Titre: Re:probleme de syntaxe if dans mon code
Posté par: MarvinLeRouge le le 02-11-2007 a 11:32:28
Pas la peine :
1) tu fais ton update TOUJOURS 2) tu récupères le nombre de lignes affectées (potentiellement 0) avec mysql_affected_rows (de mémoire le nom de la fonction, vérifie) 3) Si ce nombre est 0, tu déclenches l'insertion
Et voilou |
Titre: Re:probleme de syntaxe if dans mon code
Posté par: lefou le le 02-11-2007 a 12:14:14
Pas la peine :
1) tu fais ton update TOUJOURS 2) tu récupères le nombre de lignes affectées (potentiellement 0) avec mysql_affected_rows (de mémoire le nom de la fonction, vérifie) 3) Si ce nombre est 0, tu déclenches l'insertion
Et voilou
|
|
La différence entre cette solution et la mienne est le nombre de requêtes : tu en fais 3 au lieu de 2 donc temps d'exécution plus long. |
Titre: Re:probleme de syntaxe if dans mon code
Posté par: GoldRazor le le 02-11-2007 a 14:27:19
merci pour vos propositions.
Donc voici la solution
Code:
//Requête SQL $req = mysql_query("SELECT * FROM recherche WHERE 'mots' = $motclef") or die(mysql_error());
// on compte le nombre d'entrée avec le mot clef $num = mysql_num_rows($req);
//Si le nombre d'entrée est 1, on modifie l'entrée if($num == 1) { mysql_query("UPDATE `recherche` SET `nbr`=`nbr`+1 WHERE `mots`= '$motclef'"); } //S'il est égal à 0, on créer l'entrée else { mysql_query("INSERT INTO recherche(`mots`,`date`,`nbr`) VALUES('".$_GET['mots']."','".date('U')."','1')"); } |
|
;) |
Titre: Re:[résolu]probleme de syntaxe if dans mon code
Posté par: lefou le le 02-11-2007 a 15:23:56
Tu peux aussi faire ta requête de la façon suivante :
Code:
$req = mysql_query("SELECT count(id) as total FROM recherche WHERE mots = '".$motclef."'",$db); // $db est l'identifiant de connexion à ta database // on suppose que id est ta clé primaire $row = mysql_fetch_array($req); if($row['total'] != 0){ // requête d'update }else{ // requête d'insertion } mysql_free_result($req); |
|
|
Titre: Re:[résolu]probleme de syntaxe if dans mon code
Posté par: GoldRazor le le 02-11-2007 a 21:00:53
Merci beaucoup pour vos interventions, j'espère que ca aidera d'autres galériens comme moi.
;) |
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|