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

Fermé
nestorinfo Messages postés 5 Date d'inscription mercredi 20 juin 2018 Statut Membre Dernière intervention 20 juin 2018 - Modifié le 20 juin 2018 à 14:31
yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025 - 21 juin 2018 à 12:39
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
A voir également:

1 réponse

jordane45 Messages postés 38424 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 février 2025 4 734
20 juin 2018 à 17:39
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 38424 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 février 2025 4 734
20 juin 2018 à 17:41
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 Date d'inscription mercredi 20 juin 2018 Statut Membre Dernière intervention 20 juin 2018
20 juin 2018 à 17:47
merci je s'essaye pour voir
0
nestorinfo Messages postés 5 Date d'inscription mercredi 20 juin 2018 Statut Membre Dernière intervention 20 juin 2018
Modifié le 20 juin 2018 à 18:13
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 38424 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 février 2025 4 734
Modifié le 20 juin 2018 à 19:01
$info =$conn->query('SELECT client  FROM info WHERE  client LIKE "%'.$q.'%"') or die(print_r($conn->erroInfo()));;
0
nestorinfo Messages postés 5 Date d'inscription mercredi 20 juin 2018 Statut Membre Dernière intervention 20 juin 2018
20 juin 2018 à 18:48
merci jordane45 mais je suis toujours dans la galère
0