PHP/sql formulaire de recherche ????

Résolu/Fermé
Utilisateur anonyme - 22 janv. 2009 à 18:21
Revan26914 Messages postés 1778 Date d'inscription dimanche 14 octobre 2007 Statut Contributeur Dernière intervention 15 octobre 2019 - 24 janv. 2009 à 11:41
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

...
A voir également:

4 réponses

Revan26914 Messages postés 1778 Date d'inscription dimanche 14 octobre 2007 Statut Contributeur Dernière intervention 15 octobre 2019 320
22 janv. 2009 à 18:34
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
22 janv. 2009 à 22:52
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 dimanche 14 octobre 2007 Statut Contributeur Dernière intervention 15 octobre 2019 320
22 janv. 2009 à 23:51
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
22 janv. 2009 à 23:54
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 dimanche 14 octobre 2007 Statut Contributeur Dernière intervention 15 octobre 2019 320
23 janv. 2009 à 23:13
Il faut formuler la requête ainsi:

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


0
Utilisateur anonyme
24 janv. 2009 à 01:21
un vrai merci a toi ca marche nickel...
0
Revan26914 Messages postés 1778 Date d'inscription dimanche 14 octobre 2007 Statut Contributeur Dernière intervention 15 octobre 2019 320
24 janv. 2009 à 11:41
De rien ;-)

Bonne continuation
0