Formulaire de recherche
Résolu/Fermé
cedric
-
Modifié par cedric le 22/03/2011 à 15:23
Aktayen Messages postés 189 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 17 décembre 2015 - 7 avril 2011 à 16:25
Aktayen Messages postés 189 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 17 décembre 2015 - 7 avril 2011 à 16:25
A voir également:
- Formulaire de recherche
- Formulaire de réclamation facebook - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Formulaire de reclamation instagram - Guide
- Recherche adresse - Guide
- Recherche image - Guide
29 réponses
j'ai mis ça comme code pour search.php:
Mais j'ai les erreurs suivantes:
-Undefined variable: nomville
-Warning: mysql_fetch_array() expects parameter 1 to be resource, string given
Pourtant, $nomville est déclarer dans l'autre page, formulaire.php.
Mais pour mysql_fetch_array() je ne sais pas comment faire non plus.
<html> <center> <p>Les résultats obtenus sont les suivants:</p> <?php // On se connecte à MySQL $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=projet siemens', 'root', '', $pdo_options); $query = mysql_query("SELECT ville FROM ville WHERE ville = $nomville;"); while (mysql_fetch_array("SELECT ville FROM ville WHERE ville = $nomville;")) { echo $query ; } ?> <center> </html>
Mais j'ai les erreurs suivantes:
-Undefined variable: nomville
-Warning: mysql_fetch_array() expects parameter 1 to be resource, string given
Pourtant, $nomville est déclarer dans l'autre page, formulaire.php.
Mais pour mysql_fetch_array() je ne sais pas comment faire non plus.
Aktayen
Messages postés
189
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
17 décembre 2015
19
Modifié par Aktayen le 25/03/2011 à 16:03
Modifié par Aktayen le 25/03/2011 à 16:03
à moins que ton search.php soit inclus dans formulaire.html et qu'il le soit après que $nomVille soit déclaré, c'est normal que ça ne marche pas.
Pour récupérer les infos de ton formulaire tu dois utiliser la variable POST
exemple, si tu veux récupérer le "mot" qu'ils ont tappé tu dois êcrire
De plus, imaginons le cas où qqn met "Agen", un autre "agen" ça sera pas pareil pour tout le monde et si tu as AGEN dans ta base, aucun des deux sera trouvé.
Donc il faut que tu utilises une fonction php, qui converti tout en majuscule/minuscule/premier lettre en maj le reste en minuscule, c'est à toi de voir selon ce qui est dans ta base.
pour ton while il y a des erreurs
Après faut sécuriser ton $_POST pour pas qu'on puisse mettre du code dedans (html_entities je crois que c)
Pour récupérer les infos de ton formulaire tu dois utiliser la variable POST
exemple, si tu veux récupérer le "mot" qu'ils ont tappé tu dois êcrire
$_POST['Mot'];
De plus, imaginons le cas où qqn met "Agen", un autre "agen" ça sera pas pareil pour tout le monde et si tu as AGEN dans ta base, aucun des deux sera trouvé.
Donc il faut que tu utilises une fonction php, qui converti tout en majuscule/minuscule/premier lettre en maj le reste en minuscule, c'est à toi de voir selon ce qui est dans ta base.
pour ton while il y a des erreurs
$mot=strtolower($_POST['Mot']); $query = mysql_query("SELECT ville FROM ville WHERE ville = $mot"); while ($i=mysql_fetch_array($query)) { echo $i['id_ville'] ; }
Après faut sécuriser ton $_POST pour pas qu'on puisse mettre du code dedans (html_entities je crois que c)
merci pour ta reponse! j'y suis presque!
mais j'ai l'erreur suivante:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\search.php on line 24
au niveau de la requète ça devrait être bon:
je ne vois pas où est le problème?!?
j'ai regardé sur le net mais rien n'y fait.
désolé encore de demander ton aide.
mais j'ai l'erreur suivante:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\search.php on line 24
au niveau de la requète ça devrait être bon:
$mot=strtolower($_POST['mot']); $query = mysql_query("SELECT * FROM ville WHERE ville = $mot") ; while ($i=mysql_fetch_array($query)) { echo $i['id_ville'] ; }
je ne vois pas où est le problème?!?
j'ai regardé sur le net mais rien n'y fait.
désolé encore de demander ton aide.
Aktayen
Messages postés
189
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
17 décembre 2015
19
26 mars 2011 à 00:03
26 mars 2011 à 00:03
cette veux dire que un de tes paramètres dans une fonction n'est pas bon.
C'est quoi la ligne 24?
Je vois que tu as mis une étoile à la place de 'ville', tu as raison ça devait faire une erreur, par contre c'est déconseillé les *, vaut mieux que tu mettes
C'est une question de sécurité.
C'est quoi la ligne 24?
Je vois que tu as mis une étoile à la place de 'ville', tu as raison ça devait faire une erreur, par contre c'est déconseillé les *, vaut mieux que tu mettes
SELECT id_ville, ville FROM ville etc..
C'est une question de sécurité.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour Aktayen,
la ligne 24 correspond à la ligne du while.
je vais chercher encore pour voir si je trouve la soluce au pb.
la ligne 24 correspond à la ligne du while.
je vais chercher encore pour voir si je trouve la soluce au pb.
voici un graphique de ma bdd:
http://www.fufox.com/?d=3AB11217E4BC
http://www.fufox.com/?d=3AB11217E4BC
Aktayen
Messages postés
189
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
17 décembre 2015
19
4 avril 2011 à 18:59
4 avril 2011 à 18:59
je vois pas le fichier
Aktayen
Messages postés
189
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
17 décembre 2015
19
5 avril 2011 à 15:30
5 avril 2011 à 15:30
contact@aktayen.fr
Aktayen
Messages postés
189
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
17 décembre 2015
19
5 avril 2011 à 16:08
5 avril 2011 à 16:08
Bien reçu,
Alors pour répondre à ta question tu fais un premier select.
Tu as un code plus court pour faire une seule requète, mais je trouve que c'est beaucoup plus lisible comme ça..
J'ai pas fais gaffe aux côtes, faudra mettre tout ça en forme..
Alors pour répondre à ta question tu fais un premier select.
$resultat = "resultat du formulaire"; $recherche_ville=mysql_query(SELECT id_ville FROM ville WHERE ville='$resultat'); $rrv=mysql_fetch_array($recherche_ville); $recherche_liaison=mysql_query(SELECT num_liaison FROM alveole1 WHERE id_ville="$rrv['id_ville']"); echo 'ville : '.$resultat.'<br\>'; while($rrl=mysql_fetch_array($recherche_liaison)){ echo 'num laison : '.$rrl['num_liason'].'<br \>'; }
Tu as un code plus court pour faire une seule requète, mais je trouve que c'est beaucoup plus lisible comme ça..
J'ai pas fais gaffe aux côtes, faudra mettre tout ça en forme..
merci pour ta réponse ^^
j'ai testé:
mais j'ai cette erreur de syntaxe:
Parse error: syntax error, unexpected T_STRING in C:\wamp\www\3.php on line 25
c'est cette ligne:
j'ai vérifié la syntaxe mais ça semble bon. et ça marche pas.
ou alors je me suis planté dans la syntaxe?
j'ai testé:
$resultat = $_POST['mot'] ; $recherche_ville=mysql_query(SELECT id_ville FROM ville WHERE ville='$resultat'); $rrv=mysql_fetch_array($recherche_ville); $recherche_liaison=mysql_query(SELECT num_liaison FROM alveole1 WHERE id_ville="$rrv['id_ville']"); echo 'ville : '.$resultat.'<br\>'; while($rrl=mysql_fetch_array($recherche_liaison)) { echo 'num laison : '.$rrl['num_liason'].'<br \>'; }
mais j'ai cette erreur de syntaxe:
Parse error: syntax error, unexpected T_STRING in C:\wamp\www\3.php on line 25
c'est cette ligne:
$recherche_ville=mysql_query(SELECT id_ville FROM ville WHERE ville='$resultat');
j'ai vérifié la syntaxe mais ça semble bon. et ça marche pas.
ou alors je me suis planté dans la syntaxe?
Aktayen
Messages postés
189
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
17 décembre 2015
19
6 avril 2011 à 12:29
6 avril 2011 à 12:29
essaye ça
$recherche_ville=mysql_query("SELECT id_ville FROM ville WHERE ville=$resultat");
l'erreur a disparu mais y en a une autre maintenant en ligne 28:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
à cette ligne:
j'ai essayé de mettre id_ville=$rrv['id_ville'] entre guillemets mais ça change rien.
encore une erreur de syntaxe... ça va jamais finir lol
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
à cette ligne:
$recherche_liaison=mysql_query("SELECT num_liaison FROM alveole1 WHERE id_ville=$rrv['id_ville']");
j'ai essayé de mettre id_ville=$rrv['id_ville'] entre guillemets mais ça change rien.
encore une erreur de syntaxe... ça va jamais finir lol
Aktayen
Messages postés
189
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
17 décembre 2015
19
6 avril 2011 à 21:43
6 avril 2011 à 21:43
essaye ça :
$recherche_liaison=mysql_query('SELECT num_liaison FROM alveole1 WHERE id_ville="'.$rrv['id_ville'].'"');
$recherche_liaison=mysql_query('SELECT num_liaison FROM alveole1 WHERE id_ville="'.$rrv['id_ville'].'"');
j'ai testé ça pour afficher ma sélection mais ça m'affiche toutes les villes:
pourtant
$mot = $_GET['mot']; $req="SELECT ville FROM ville WHERE ville LIKE '%$mot%' "; $res = mysql_query($req) ; while ($ville=mysql_fetch_array($res)) { echo $ville['ville']; } mysql_free_result ($res);
pourtant
LIKE '%$mot%'c'est bien pour dire 'comme la sélection'?
Aktayen
Messages postés
189
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
17 décembre 2015
19
Modifié par Aktayen le 7/04/2011 à 11:22
Modifié par Aktayen le 7/04/2011 à 11:22
Je pense que tu as un problème avec les quotes ^^
Petite explication sur les quotes :
entre les doubles quotes tu peux mettre des variables php, elles seront interprétés mais ce n'est pas le cas avec les simple quotes.
ex :
va afficher : salut - $mot
$mot = $_GET['mot']; $recherche_ville=mysql_query("SELECT ville FROM ville WHERE ville LIKE \"%$mot%\" "); while ($resultat_ville=mysql_fetch_array($recherche_ville)) { echo $resultat_ville['ville']; }
Petite explication sur les quotes :
entre les doubles quotes tu peux mettre des variables php, elles seront interprétés mais ce n'est pas le cas avec les simple quotes.
ex :
$mot="salut - "; echo "$mot"; echo '$mot';
va afficher : salut - $mot
Aktayen
Messages postés
189
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
17 décembre 2015
19
7 avril 2011 à 11:46
7 avril 2011 à 11:46
fait un test en mettant $mot ="AGEN" on verra si ça vient du formulaire l'erreur ou non
Aktayen
Messages postés
189
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
17 décembre 2015
19
7 avril 2011 à 14:23
7 avril 2011 à 14:23
Ce qu'il faudrait aussi c'est de garder une norme, genre mettre la ville en majuscule ou minuscule car à mon avis ça va poser problème au niveau de la recherche.
Tu m 'as bien dis qu'il affiché toutes les villes?
Tu m 'as bien dis qu'il affiché toutes les villes?