Système d'apprentissage

Résolu
hichamdeb Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   -  
Archeus01 Messages postés 1572 Date d'inscription   Statut Membre Dernière intervention   -
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 1572 Date d'inscription   Statut Membre Dernière intervention   452
 
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   Statut Membre Dernière intervention   9
 
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 1572 Date d'inscription   Statut Membre Dernière intervention   452
 
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   Statut Membre Dernière intervention   9
 
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 1572 Date d'inscription   Statut Membre Dernière intervention   452
 
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   Statut Membre Dernière intervention   9
 
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 1572 Date d'inscription   Statut Membre Dernière intervention   452
 
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   Statut Membre Dernière intervention   9
 
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 1572 Date d'inscription   Statut Membre Dernière intervention   452
 
Si c'est juste pour l'afficher, oui.
0
hichamdeb Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   9
 
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