Insèrer ma variable dans une requête

Résolu/Fermé
barale61 Messages postés 1208 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 4 novembre 2024 - 30 mai 2013 à 22:26
barale61 Messages postés 1208 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 4 novembre 2024 - 31 mai 2013 à 18:14
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.

8 réponses

Utilisateur anonyme
30 mai 2013 à 22:39
Bonsoir

Tu avais de parenthèses autour de ('mot'), pourquoi n'en mets-tu pas autour de '$rechercher' ?
0
barale61 Messages postés 1208 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 4 novembre 2024 110
30 mai 2013 à 22:46
De cette façon, il ne me retourne rien.
0
Alors, c'est que $rechercher ne contient pas 'mot'. As-tu affiché la requête générée ?
0
barale61 Messages postés 1208 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 4 novembre 2024 110
Modifié par barale61 le 30/05/2013 à 23:07
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
31 mai 2013 à 08:47
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 1208 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 4 novembre 2024 110
31 mai 2013 à 12:58
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
31 mai 2013 à 16:44
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 1208 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 4 novembre 2024 110
31 mai 2013 à 18:14
C'était bien ça et merci beaucoup !
0