goldrazor06 Posté 2 Novembre 2007 Posté 2 Novembre 2007 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. 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
JoP Posté 2 Novembre 2007 Posté 2 Novembre 2007 (modifié) Bonjour... Je vais faire un petit essai.. N.B. Je fais le code de la même façon que moi je le ferais, si tu as des questions, n'hésites pas.. //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éeif($num == 1){mysql_query("UPDATE `recherche` SET `nbr`=`nbr`+1 WHERE `mots`= $motclef");}//S'il est égal à 0, on créer l'entréeelse{mysql_query("INSERT INTO recherche(`mots`,`date`,`nbr`) VALUES('".$_GET['mots']."','".date('U')."','1')");} Voila!! Logiquement ça devrais fonctionner, car pour moi ça fontionne.. Si tu as besoin de plus amples explications, je suis à ta disposition.. Bonne journée edit: j'ai corrigé quelques fautes de frappe... Modifié 2 Novembre 2007 par JoP
captain_torche Posté 2 Novembre 2007 Posté 2 Novembre 2007 Personnellement, je ferai comme ça : <?php// Création de la liste des mots-clés$sql = "SELECT mots FROM recherche";$req = mysql_query($sql);$tab_motscles = array();while($data = mysql_fetch_assoc($req)) $tab_motscles[] = $data['mots'];// Code de la conditionif(in_array($_GET['mots'], $tab_motscles)) {}?> Dans le principe, on crée un tableau (array) contenant tous les mots-clés de la BDD. On vérifie ensuite que le mot-clé désiré se trouve bien dans le tableau.
goldrazor06 Posté 2 Novembre 2007 Auteur Posté 2 Novembre 2007 (modifié) Merci infiniment pour vos propositions Mais voici ce que ca fait sur ma base Meme si le mots clef a deja été tapé, ca ajoute le meme mot clef sans incrementer le compteur "nbr" Vous avez pas une solution ? Merci Modifié 2 Novembre 2007 par goldrazor06
Findel Posté 2 Novembre 2007 Posté 2 Novembre 2007 (modifié) Indique dans ta base que la colonne "mots" doit être unique. Ensuite, tu pourras utiliser l'instruction suivante : mysql_query("INSERT INTO recherche(`mots`,`date`,`nbr`) VALUES('".$_GET['mots']."','".date('U')."','1') ON DUPLICATE KEY UPDATE nbr=nbr+1"); Ainsi, tu n'aura plus besoin de tester quoi que ce soit, ça marchera dans le cas d'un nouvel enregistrement comme dans le cas d'une mise à jour d'un mot déjà existant Modifié 2 Novembre 2007 par Findel
goldrazor06 Posté 2 Novembre 2007 Auteur Posté 2 Novembre 2007 Alors ca pour une nouvelle, c'est une bonne nouvelle, tout marche impec, merci beaucoup.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant