Liste déroulante et recherche Mysql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Liste déroulante et recherche Mysql

par Truc » 17 déc. 2005, 15:57

est-ce que sur la 2eme pages tu ouvre les balises HTML ?! <HTML><HEAD>...

la requete est bonne (pour phpmyadmin) et le code est réduit au plus simple l'erreur doit venir d'ailleurs
donc codeLieu est bien défini quelque part... mais ou, je trouve pas
(...)
je comprends pas bien ce que ca permet puisque j'ai aucun champs nommé codelieu (sans x) c une nouvelle variable en fait ?
c'est la variable qui récupère la valeur de la liste déroulante.
$codeLieu = $_POST["maliste"]; 

par mere-teresa » 16 déc. 2005, 14:01

ok ça, ça fonctionne... mais ce qui doit pas etre pas ok, c lui d'afficher pour codelieux = THV, les champs heure, type, prix qui correspondent dans ma table ag_fev1....
:shock: gni ?

Pour résumer :
- ta reuqête ressemble à quelque chose de valable quand tu fais echo ?
[] oui [] non
-tu obtiens des données quand tu poses juste la requête (en remplaçant ta variable par une valeur) dans PHPMyAdmin ou Eskuel ?
[] oui [] non

par epilogg » 16 déc. 2005, 13:57

ok ça, ça fonctionne... mais ce qui doit pas etre pas ok, c lui d'afficher pour codelieux = THV, les champs heure, type, prix qui correspondent dans ma table ag_fev1....

par sunmx » 16 déc. 2005, 13:36

Normal, quand tu testes une requete SQL tu dois remplacer la variable par une valeur ^^

SELECT heure, type, prix FROM ag_fev1 WHERE codelieux='THV'
ou
SELECT heure, type, prix FROM ag_fev1 WHERE codelieux='IM'


etc....

par epilogg » 16 déc. 2005, 13:34

au hasard, quand j'écris $requete= "SELECT heure, type, prix FROM ag_fev1 WHERE codelieux='".$codelieu."'; ou lieu de codeLieu, il me dit "undefined variable" donc codeLieu est bien défini quelque part... mais ou, je trouve pas!

par epilogg » 16 déc. 2005, 13:31

ca se précise... quand je fais la requete sous phpmyadmin
avec
SELECT heure, type, prix FROM ag_fev1 WHERE codelieux='".$codeLieu."'

j'ai rien. par contre sans le "WHERE codelieux.... " ca fonctionne bien, php myadmin m'affiche mes champs, ca doit bien venir de codelieux et $codelieu, je comprends pas bien ce que ca permet puisque j'ai aucun champs nommé codelieu (sans x) c une nouvelle variable en fait ?

par epilogg » 16 déc. 2005, 13:24

oki je tente ce que tu dis sunmx
sinon j'ai mis en ligne pour que vous voyez ce que ca donne...

http://sceno.fr/v3/index.php?page=recherche

sans l'include : http://sceno.fr/v3/agenda/recherche.php

par sunmx » 16 déc. 2005, 13:10

Salut,

Essaye de faire un teste.

if( mysql_num_rows($var) >= 1 )
{
   while ($data=mysql_fetch_assoc($var));
   {
        echo  $data['type'] . '<br />';
        echo  $data['prix'] . '<br />';
        echo  $data['heure'] . '<br />';
   } 
}
else echo "Rien dans la BD";

Autrement teste ta requete SQL dans phpmyadmin tu verras se qu'elle te retourne.

par mere-teresa » 16 déc. 2005, 12:56

Le var_dump sert à "faire cracher" à PHP le contenu d'une variable.

echo $requete, c'est ok signifie-t-il que ta requête renvoie des résultats ou juste qu'elle est en "bon" SQL ?

par epilogg » 16 déc. 2005, 12:53

wai visiblement, mes noms de champs sont ok, et la premiere page fonctionne, c au moment de l'affichage des variables des champs "heure type prix from ag_fev1" que ca merdouille (sur la page 2)
ca fait plusieurs fois que tu me parles du var_dump mais je comprends pas cette fonction, à quoi sert elle ?

par mere-teresa » 16 déc. 2005, 12:24

Tu as tes 3 balises <br /> ?
Donc il rentre bien dans ton while.

Par contre, es-tu sûr du nom de tes champs ?
SELECT * FROM lieux WHERE $list['codelieux']; ne permet pas de savoir le nom des champs...

Je te conseille un var_dump($data); dans le while

par epilogg » 16 déc. 2005, 11:07

Bonjour!

Bon ben je reprends ou j'en étais. c'est à dire, deux tables :

1 - Lieux qui contient les champs 'codelieux' et 'libellelieux'

2 - ag_fev1 qui contient les champs 'heure, type, prix et codelieux'

sur ma premiere page, j'ai une liste déroulante qui affiche les "libellelieux" de ma table lieux et qui doit poster le choix de l'internaute à la page 2. ca fonctionne nickel :

<form name="form" method="post" action="agenda/recherche2.php">
<select name="maliste">
<!-- extraction de ta liste -->

 <?php  
mysql_connect('localhost','root','') or die('Erreur de connexion');  
mysql_select_db('v3_essai') or die('Base inexistante');  
$sql = 'SELECT codelieux, libellelieux FROM lieux;';  
$query = mysql_query($sql) or die( 'Erreur' );  
$nb = mysql_fetch_array($query);  
if ( !$nb[0] ) {  
echo '<option>Aucun lieux</option>';  
} else {  
while ( $list = mysql_fetch_array( $query ) ) {  
echo '<option value="'.$list['codelieux'].'">'.$list['libellelieux'].'</option>';  

}  
}  
 mysql_close();  
?> 
</select>

<input type="submit" name="submit" value="Envoyer" />
</form> 
La ou j'ai un probleme, c'est sur la page 2 :


<?php
mysql_connect('localhost','root','') or die('Erreur de connexion');
mysql_select_db('v3_essai') or die('Base inexistante');

$codeLieu = $_POST["maliste"];
$requete= "SELECT heure, type, prix FROM ag_fev1 WHERE codelieux='".$codeLieu."'";

$var = mysql_query($requete) or die( 'Erreur' );

while ($data=mysql_fetch_assoc($var));
{
echo  $data['type'] . '<br />';
echo  $data['prix'] . '<br />';
echo  $data['heure'] . '<br />';

}
mysql_close();
?> 
je voudrais qu'il m'affiche les champs heure, type et prix qui correspondent au codelieux, mais quand je fais l'aperçu, il me met une page blanche et dans les sources j'ai juste trois balises " <br /><br /><br /> " (pourtant que je fais un echo $requete, ca a l'air ok). Vous voyez une erreur quelque part ? je comprends pas...

par epilogg » 15 déc. 2005, 21:32

je vais arrêter la pour aujourd'hui... la tête basse, les épaules lourdes : vaincu !
Merci pour vos tuyaux... et certainement à demain :ordi: :wink:

par epilogg » 15 déc. 2005, 21:23

ca fait ch...suer p$$$$ toujours une page blanche. je vois pas d'ou ca peut venir, je suis sur de ma base de données

par epilogg » 15 déc. 2005, 21:13

Merci! je tente
et
désolé pour le cafouillage :roll: :lol: