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
« Dernière Édition: le 02-11-2007 a 14:27:43 par GoldRazor »
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.
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
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.
//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')"); }
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);