Moteur de recherche en php et concaténation requêt

nestorinfo Messages postés 5 Statut Membre -  
yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention   -
Salut à tous , je suis un vrais debutant en php

J'essaie de faire un moteur de recherche pour mon site mais j'ai une erreur dans mon code que je n'ai pas su résoudre :


<?php

include("connexion.php");

$info=$conn->query('SELECT client,axe,cylindre,sphere,addition,axe1,cylindre1,sphere1,addition1,date FROM info ')or die(print_r($conn->erroInfo()));

if (isset($_GET['query']) AND !empty($_GET['query']))

{   

  $query=htmlspecialchars($_GET['query']);


$info=$conn->query=('SELECT client ,axe ,cylindre,sphere,addition,axe1,cylindre1,sphere1,addition1,date FROM info WHERE

 client,axe,cylindre,sphere,addition,axe1,cylindre1,sphere1,addition1,date LIKE "%'.$query.'%"' );

} 



?>

<!DOCTYPE html>
<html  >
<head>
  <title>Moteur de recherche</title>
</head>
<body  >

<form method="GET" >
   
 
  <h2 align="left" > 

  Entrer votre recherche: <input type="search" name="query" maxlength="80" size="80"  >


 <input type="submit" value="rechercher">


<ul>

 <?php while ( $a = $info->fetch()) { ?> 

<li>
  <?=$a['client']?> <?=$a['axe']?> <?=$a['cylindre']?> <?=$a['sphere']?> <?=$a['addition']?> <?=$a['axe1']?> <?=$a['cylindre1']?> <?=$a['sphere1']?> 

  <?=$a['addition1']?> <?=$a['date']?>
</li> 

<?php } ?> 


</ul>

 </h2>

</form>
 
</body>
</html>



voici le message d'erreur

Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\test\form_recherche.php on line 47

1 réponse

jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 758
 
Bonjour,

Le message d'erreur vient du fait que ta requête ne retourne rien.... car elle est fausse
'SELECT client ,axe ,cylindre,sphere,addition,axe1,cylindre1,sphere1,addition1,date 
FROM info 
WHERE
 client,axe,cylindre,sphere,addition,axe1,cylindre1,sphere1,addition1,date LIKE "%'.$query.'%"'


Regarde donc à quoi sert la fonction CONCAT
https://www.w3schools.com/sql/func_mysql_concat.asp


NB: Teste TOUJOURS tes requêtes DIRECTEMENT dans ta BDD (via PHPMyadmin par exemple) AVANT de vouloir les mettre dans ton code PHP.
ça te permettra de savoir si elles fonctionnent ou non.
1
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 758
 
De plus, je pense que tu cherches à faire :
SELECT client ,axe ,cylindre,sphere,addition,axe1,cylindre1,sphere1,addition1,date 
FROM info 
WHERE
 client LIKE "%'.$query.'%"' 
OR axe LIKE "%'.$query.'%"'
OR cylindre LIKE "%'.$query.'%"'
 ...etc...
0
nestorinfo Messages postés 5 Statut Membre
 
merci je s'essaye pour voir
0
nestorinfo Messages postés 5 Statut Membre
 
j'ai arrangé le code un peu mais rien ne s'affiche quand je lance la recherche

voici le code

<?php

include("connexion.php");

$info=$conn->query('SELECT client FROM info ')or die(print_r($conn->erroInfo()));

if (isset($_GET['q']) AND !empty($_GET['q']))

{   

  $q= htmlspecialchars($_GET['q']);


$info =$conn->query('SELECT client  FROM info WHERE

 client LIKE "%.$q.%"' );
  
} 


?>

<!DOCTYPE html>
<html  >
<head>
  <title>Moteur de recherche</title>
</head>
<body  >

<form method="GET" >
   
 
  <h2 align="left" > 

  Entrer votre recherche: <input type="search" name="q" maxlength="80" size="80"  >


 <input type="submit" value="rechercher">

<ul>

 <?php while ( $a = $info->fetch()) { ?> 

<li>
  <?=$a['client']?> 
</li> 

<?php } ?> 


</ul>

 </h2>

</form>
 
</body>
</html>


EDIT : Correction des BALISES DE CODE ( encore )
0
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 758
 
$info =$conn->query('SELECT client  FROM info WHERE  client LIKE "%'.$q.'%"') or die(print_r($conn->erroInfo()));;
0
nestorinfo Messages postés 5 Statut Membre
 
merci jordane45 mais je suis toujours dans la galère
0