Aller au contenu

Probleme de if Pour Mon Code


Sujets conseillés

Posté

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

Posté (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é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')");
}

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é par JoP
Posté

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 condition
if(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.

Posté (modifié)

Merci infiniment pour vos propositions

Mais voici ce que ca fait sur ma base

tablleeelm8.png

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é par goldrazor06
Posté (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é par Findel

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...