Système d'apprentissage

Résolu/Fermé
hichamdeb Messages postés 125 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 17 mars 2020 - 24 août 2009 à 16:23
Archeus01 Messages postés 1571 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 - 25 août 2009 à 15:12
Bonjour,
Je suis entrain de réaliser un système d'apprentissage pour un moteur de recherche, apparement aucune erreur mysql, mais le résultat ne correspond pas du tout aux conditions, la page resultat affiche tout les données qui existent dans la base de donné !!
 
// si le mot clé est correct
if($mot = $unique['nom'])
{
$all2 = mysql_query("SELECT * FROM table WHERE nom = '".$mot."' AND ville='$ville'");
}
 
// sinon si le mot tapé correspond a un mot clés qui existe dans la DB
elseif($mot = $unique['word1'])
{
$all2 = mysql_query("SELECT * FROM table WHERE word1 = '".$mot."' AND ville='$ville'");
}
// fin de la deuxieme condition
 
 
 
// sinon on cherche un mot clé qui correspond plus ou moins
else
{
$all2 = mysql_query("SELECT * FROM table WHERE nom LIKE '%".$mot."%' AND ville='$ville'");
}



J'ai essayé de tout résumer dans une seule requette mais sa ne marche pas non plus !

$all = mysql_query("SELECT * FROM table WHERE nom LIKE '%".$mot."%' AND ville='$ville' OR word1 LIKE '%".$mot."%'");

7 réponses

Archeus01 Messages postés 1571 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 452
24 août 2009 à 16:47
fais un echo "<br/><br/>$all2<br/><br/>" et copie ta requete dans ton sgbd... TU peux aussi la poster la si ut veux qu'on y jette un coup d'oeil.
Pose aussi la ligne ou tu effectues ta requête (genre $pdo->query($all2); )... Au fait, pourqoi all2 et pas $sql comme tout le monde?
Cdt,
0
hichamdeb Messages postés 125 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 17 mars 2020 9
24 août 2009 à 17:16
emm.. j'ai pas compri grand chose mais je pense avoir trouver la solution il me manque juste le code qu'il en faut XD
il suffi de mettre deux critère après like et le tour est joué mais le code que j'ai essayé n'affiche rien !

$all = mysql_query("SELECT * FROM table WHERE nom LIKE ('%".$mot."%' OR '%".$word1."%') AND ville='$ville'");


Où est l'erreur dans ce code :'(

tien c'est dommage qu'il y a pas de smylies dans ce site
0
Archeus01 Messages postés 1571 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 452
25 août 2009 à 10:41
Bonjour,

Ta question est plus simple d'un coup donc moins de risque pour moi de répondre à coté de la plaque.

$all = mysql_query("SELECT * FROM table WHERE (nom LIKE '%".$mot."%' OR nom LIKE '%".$word1."%') AND ville like '$ville'");

Ton erreur est dans le OR en mysql, il faut répeter le nom du champ a tester. J'ai donc rajouté un nom LIKE et j'ai remplacé le = après ville par un like. Essaye donc.
0
hichamdeb Messages postés 125 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 17 mars 2020 9
25 août 2009 à 11:11
Merci Archeus01, apparemment ton code est correct, mais le pb c'est qu'il me sort tout !! non seulement là où il y a le nom ou le mot clé correspondants
0
Archeus01 Messages postés 1571 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 452
25 août 2009 à 11:15
est-ce que tu peux faire un echo de $all et le copier ici? *sent venir un turc du genre nom like '%%'*
0
hichamdeb Messages postés 125 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 17 mars 2020 9
25 août 2009 à 11:21
quand je met un echo en all, il y a cette expression qui se repète 3 fois : Resource id #3
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Archeus01 Messages postés 1571 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 452
25 août 2009 à 11:52
Oui c'est moi qui ait dit une connerie.
tu fais $query = "SELECT * FROM table WHERE (nom LIKE '%".$mot."%' OR nom LIKE '%".$word1."%') AND ville like '$ville'"; et après echo $query; et tu colles ici ce que tu vois.
0
hichamdeb Messages postés 125 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 17 mars 2020 9
25 août 2009 à 12:02
la page est vide ! tu trouve que c'est normal de mettre une requette dans une variable et non pas dans mysql_query !
0
Archeus01 Messages postés 1571 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 452
25 août 2009 à 15:12
Si c'est juste pour l'afficher, oui.
0
hichamdeb Messages postés 125 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 17 mars 2020 9
25 août 2009 à 13:04
c'etait ma faute :p il y avais pas de variable word1 c'est un champ dans ma DB il a fallut mettre "WHERE nom OR word1 LIKE ..."
comme on dit s'il y a pas de solution, c'est qu'il y a pas d'erreur ^^
Merci bcp Archeus01
0