Probleme de requete mysql en php

Fermé
Nataniel - 14 janv. 2010 à 12:07
 Nataniel - 14 janv. 2010 à 17:52
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

<?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)"

8 réponses

JessayeDeTrouver Messages postés 270 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 4 mai 2012 47
14 janv. 2010 à 12:15
il manque une ligne de code dans ta requète c'est la ligne mysql_result qui manque.
0
rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 136
14 janv. 2010 à 12:16
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 ";

@+
0
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) ) 
0
Autre erreur : il ne faut pas de \ devant les ' dans une chaine entre " "
$requete = "SELECT * FROM `catalogue` WHERE `navi` = '%$motNavi%' LIMIT 0, 30 ";
0

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 :'()
0
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 ";
0
graffx Messages postés 6506 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 1 975
14 janv. 2010 à 14:51
exact, une requete pour une recherche il faut utiliser LIKE
0
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 :)
0