PHP/sql formulaire de recherche ????

Résolu
Utilisateur anonyme -  
Revan26914 Messages postés 1778 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

voila je cherche comment créer un formulaire, pour faire des recherche dans mes tables (sql).

J'ai deja créer le formulaire qui envoie 2 variables vers une page de recherche,
La ou je but c'est pour commander la recherche en php avec mes 2 variables et afficher le ou les resultat.

un truc dans ce genre la (mais ca ca marche pas)


$sql = 'SELECT * FROM '.$var1.' WHERE champ = '.$avr2.' ORDER BY tite ASC LIMIT

...

4 réponses

Revan26914 Messages postés 1778 Date d'inscription   Statut Contributeur Dernière intervention   320
 
Bonsoir,

Pour faire une recherche dans une table, il faut le faire dans la requête SQL en utilisant le critère LIKE (d'autres critère sont aussi possibles).

Pour LIKE:

==> http://www.siteduzero.com/tutoriel-3-34441-realiser-un-moteur-de-recherche-pour-son-site.html

Et pour le moteur de recherche en entier:

==> https://openclassrooms.com/fr/courses


Cordialement

Revan
0
Utilisateur anonyme
 
Merci de ta reponse, mais j'ai un petit probleme, je ne peut faire une recherche qu'avec un non exact .

j'ai tenter ceci mais je n'arrive pas a placer "%" qui permet de parfaire la recherche ???

<?php
// on se connecte à MySQL
include("_connexion.php");

// on recupere la donnee
$find = $_GET["find"];
$cat = $_GET["cat"];

// on crée la requête SQL
$sql = 'SELECT * FROM '.$cat.' WHERE tite LIKE '.$find.' ORDER BY tite ASC';

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
{
?>

J'ai essayer, ceci et a chaque fois ca ne marche pas :

$sql = 'SELECT * FROM '.$cat.' WHERE tite LIKE '.$find.%' ORDER BY tite ASC';

$sql = 'SELECT * FROM '.$cat.' WHERE tite LIKE '.$find%.' ORDER BY tite ASC';

$sql = 'SELECT * FROM '.$cat.' WHERE tite LIKE '.$find.' % ORDER BY tite ASC';

...
0
Revan26914 Messages postés 1778 Date d'inscription   Statut Contributeur Dernière intervention   320
 
Pour LIKE, il faut respecter la syntaxe suivante:

SELECT * FROM matable WHERE monchamp LIKE '%motclef%'  etc.


Le mot clef doit est entouré de %

Donc tu devrais avoir ça:

LIKE '%$find%'




Je t'expliquerai plus en détail demain, là je suis trop fatigué, je vais aller me coucher ;)

0
Utilisateur anonyme
 
J'ai essayer cette techinique mais ca m'affiche plien de resultat (qui ne correspond pas) ou rien avec l'erreur suivante :

Erreur SQL !
SELECT * FROM mulien WHERE tite LIKE saw ORDER BY tite ASC
Unknown column 'saw' in 'where clause'


Rien a voir avec ma recheche, ....

Je me doute qu'il y a un truc qui cloche mais quoi ???


help
0
Revan26914 Messages postés 1778 Date d'inscription   Statut Contributeur Dernière intervention   320
 
Il faut formuler la requête ainsi:

$sql = 'SELECT * FROM '.$cat.' WHERE tite LIKE \'%'.$find.'%\' ORDER BY tite';


0
Utilisateur anonyme
 
un vrai merci a toi ca marche nickel...
0
Revan26914 Messages postés 1778 Date d'inscription   Statut Contributeur Dernière intervention   320
 
De rien ;-)

Bonne continuation
0