Insèrer ma variable dans une requête

Résolu
barale61 Messages postés 1214 Date d'inscription   Statut Membre Dernière intervention   -  
barale61 Messages postés 1214 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

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.

A voir également:

8 réponses

Utilisateur anonyme
 
Bonsoir

Tu avais de parenthèses autour de ('mot'), pourquoi n'en mets-tu pas autour de '$rechercher' ?
0
barale61 Messages postés 1214 Date d'inscription   Statut Membre Dernière intervention   110
 
De cette façon, il ne me retourne rien.
0
Utilisateur anonyme
 
Alors, c'est que $rechercher ne contient pas 'mot'. As-tu affiché la requête générée ?
0
barale61 Messages postés 1214 Date d'inscription   Statut Membre Dernière intervention   110
 
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"
0

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

Posez votre question
Utilisateur anonyme
 
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
0
barale61 Messages postés 1214 Date d'inscription   Statut Membre Dernière intervention   110
 
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);
?>
0
Utilisateur anonyme
 
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é)
0
barale61 Messages postés 1214 Date d'inscription   Statut Membre Dernière intervention   110
 
C'était bien ça et merci beaucoup !
0