Insèrer ma variable dans une requête
Résolu
barale61
Messages postés
1126
Date d'inscription
Statut
Membre
Dernière intervention
-
barale61 Messages postés 1126 Date d'inscription Statut Membre Dernière intervention -
barale61 Messages postés 1126 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Quelqun peut-il me dire ou se trouve mon erreur ?
si je fait
cela me revoi bien la ligne avec le mot "mot"
mais si j'insère ma variable comme ceci:
cela me retourne une erreur.
Quelqun peut-il me dire ou se trouve mon erreur ?
si je fait
("SELECT * FROM recettes WHERE MATCH (recettes_titre) AGAINST ('mot')");
cela me revoi bien la ligne avec le mot "mot"
mais si j'insère ma variable comme ceci:
("SELECT * FROM recettes WHERE MATCH (recettes_titre) AGAINST '$rechercher'");
cela me retourne une erreur.
8 réponses
-
Bonsoir
Tu avais de parenthèses autour de ('mot'), pourquoi n'en mets-tu pas autour de '$rechercher' ? -
De cette façon, il ne me retourne rien.
-
Alors, c'est que $rechercher ne contient pas 'mot'. As-tu affiché la requête générée ?
-
Dans mon champ "rechercher" je saisis "mousse" et il ne me renvoi pa de donnée alors que dans phpmyadmin en faisant:
SELECT * FROM recettes WHERE MATCH (recettes_titre) AGAINST ('mousse') LIMIT 0 , 30
Il me renvoi bien les recettes avec de la mousse comme je le souhaite.
et dans $rechercher il y a bien "mousse" -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Alors ce n'est pas ta requête qui a un problème, c'est ton programme PHP.
Peux-tu le montrer (en cachant tes mots de passe s'il y en a ?
Inutile de tout montrer, donne seulement le code de connexion et l'appel à la requête -
Si je fais avec un like, cela fonctionne bien.
$colname_rsRecherche = "-1"; if (isset($_GET['rechercher'])) { $colname_rsRecherche = $_GET['rechercher']; } mysql_select_db($database_connexion, $connexion); $query_rsRecherche = sprintf("SELECT * FROM recettes WHERE MATCH (recettes_titre) AGAINST ('$rechercher')"); $query_limit_rsRecherche = sprintf("%s LIMIT %d, %d", $query_rsRecherche, $startRow_rsRecherche, $maxRows_rsRecherche); $rsRecherche = mysql_query($query_limit_rsRecherche, $connexion) or die(mysql_error()); $row_rsRecherche = mysql_fetch_assoc($rsRecherche); if (isset($_GET['totalRows_rsRecherche'])) { $totalRows_rsRecherche = $_GET['totalRows_rsRecherche']; } else { $all_rsRecherche = mysql_query($query_rsRecherche); $totalRows_rsRecherche = mysql_num_rows($all_rsRecherche); } $totalPages_rsRecherche = ceil($totalRows_rsRecherche/$maxRows_rsRecherche)-1; $queryString_rsRecherche = ""; if (!empty($_SERVER['QUERY_STRING'])) { $params = explode("&", $_SERVER['QUERY_STRING']); $newParams = array(); foreach ($params as $param) { if (stristr($param, "pageNum_rsRecherche") == false && stristr($param, "totalRows_rsRecherche") == false) { array_push($newParams, $param); } } if (count($newParams) != 0) { $queryString_rsRecherche = "&" . htmlentities(implode("&", $newParams)); } } $queryString_rsRecherche = sprintf("&totalRows_rsRecherche=%d%s", $totalRows_rsRecherche, $queryString_rsRecherche); ?> -
Plusieurs remarques :
Laquelle des requêtes est prise en compte dans le cas dont tu parles ?$rsRecherche = mysql_query($query_limit_rsRecherche, $connexion) or die(mysql_error());
ou$all_rsRecherche = mysql_query($query_rsRecherche);
Et dans le code suivant :if (isset($_GET['rechercher'])) { $colname_rsRecherche = $_GET['rechercher']; } mysql_select_db($database_connexion, $connexion); $query_rsRecherche = sprintf("SELECT * FROM recettes WHERE MATCH (recettes_titre) AGAINST ('$rechercher')");
À vue de nez, il ne devrait pas y avoir $colname_rsRecherche à la place de $rechercher ?
As-tu fait echo $query_rsRecherche pour voir ce qu'il y a réellement dans ta requête ? (comme je te l'avais déjà suggéré) -
C'était bien ça et merci beaucoup !