Probleme de requete mysql en php
Nataniel
-
Nataniel -
Nataniel -
Bonjour,
j'ai dans l'idee de creer un traducteur Na'vi <-> Francais, mais lorsque je lance la recherche (par une methode POST), rien ne s'affiche, ni erreur ni resultat de recherche :/ voici mon code
Voila et lorsque je dégage la boucle (juste le WHILE et les {}) j'obtiens le résultat suivant :
"kaltxì (donc ma variable $motNavi passe bien)se traduit par (et là cela n' affiche rien donc $donnees['francais'] ne retourne rien, meme pas d'erreur)"
j'ai dans l'idee de creer un traducteur Na'vi <-> Francais, mais lorsque je lance la recherche (par une methode POST), rien ne s'affiche, ni erreur ni resultat de recherche :/ voici mon code
<?php
//recuperation des variables POST
$motNavi = $_POST['motnavi'];
//connection à la BDD
mysql_connect("SSSSSSSSS", "LOGIN", "PASSWORD") /*effacer*/or die ("echec connection");
mysql_select_db("NAMEBDD") /*effacer*/or die ("marche po");
//suite du programme
//Execution de la recherche
$recherche = "SELECT * FROM `catalogue` WHERE `navi` = \'%$motNavi%\' LIMIT 0, 30 "or die(mysql_error());
while ($donnees = mysql_fetch_array($recherche) )
{
?>
<font color="#000000"><?php echo $motNavi ; ?> ce traduit par <?php echo $donnees['francais']; ?></font><br />
<?php
}
mysql_close();
?>
Voila et lorsque je dégage la boucle (juste le WHILE et les {}) j'obtiens le résultat suivant :
"kaltxì (donc ma variable $motNavi passe bien)se traduit par (et là cela n' affiche rien donc $donnees['francais'] ne retourne rien, meme pas d'erreur)"
Configuration: Windows XP Firefox 3.5.7
8 réponses
-
il manque une ligne de code dans ta requète c'est la ligne mysql_result qui manque.
-
Bonjour,
J'ai un doute sur la syntaxe :
$recherche = "SELECT * FROM `catalogue` WHERE `navi` = \'%$motNavi%\' LIMIT 0, 30 "or die(mysql_error());
essai ça à la place histoire de vérifier :
$recherche = "SELECT * FROM catalogue WHERE navi = $motNavi LIMIT 0, 30 ";
@+
-
Bonjour
Il te manque le mysql_query :$requete = "SELECT * FROM `catalogue` WHERE `navi` = \'%$motNavi%\' LIMIT 0, 30 "; $recherche = mysql_query($requete) or die(mysql_error()); while ($donnees = mysql_fetch_array($recherche) )
-
Autre erreur : il ne faut pas de \ devant les ' dans une chaine entre " "
$requete = "SELECT * FROM `catalogue` WHERE `navi` = '%$motNavi%' LIMIT 0, 30 "; -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
J'ai essayer toute vos solution mais c'est le meme delire :'( a croire que ma base est vide lol (pourtant je vous assure que non et que toute mes variable sont juste :'()
-
dans ton WHERE, il faut utiliser LIKE pour la recherche, car = cherche une égalité exacte
$requete = "SELECT * FROM `catalogue` WHERE `navi` LIKE '%$motNavi%' LIMIT 0, 30 "; -
exact, une requete pour une recherche il faut utiliser LIKE
-
Merci beaucoup à vous tous :) problème résolut
J'avais aussi une autre erreur que vous ne pouviez pas voir ^^ : "LIMIT 0, 30" c'est bien...si le mot rechercher est dans les 30 premier résultat ...
Quoi qu'il en soi merci bcp encore :)