Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3038 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Pb Php/sql, gestion d'une liste dynamique

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Pb Php/sql, gestion d'une liste dynamique

n°1159276
judicael
Posté le 25-07-2005 à 17:57:17  profilanswer
 

Alors c'est vraiment dingue, je comprends pas. A tous les coups c'est une erreur de débutants (bon j'en suis un donc ça va).
 
Je génère une liste déroulante dynamique au sein d'un formulaire (le contenu de la liste est pris à partir d'une table). Ca, ok.
On clique dans la liste, la variable est réceptionné dans un autre fichier qui doit générer des résultats en fonction du premier clique.
 
La variable, passe, je le teste en faisant un print et pourtant j'essaie de générer une nouvelle requête avec cette variable et ça ne marche pas.
Ce qui est incompréhensible, c'est que si je remplace ma variable ($lepays) par un nom de pays contenu dans ma base (je mets "Allemagne", par exemple), tout fonctionne.
 
Quelqu'un pourrait-il m'aider ?! please !
 
Voici le code :
 
include("bd_connect.php" );
 
$thequery=' SELECT * FROM user where pays="'.$lepays.'"';   // la variable $lepays vient du formulaire précédent
 
$id = mysql_query($thequery, $variable);
 
while($row = mysql_fetch_row($id))
 
 {
 
 
 $champ_pseudo[] = ($row[0]);
 
 $champ_date[] = ($row[1]);
 
 $champ_pays[] = ($row[4]);
 
 $champ_ville[] = ($row[5]);
 
 $champ_langue[] = ($row[6]);
 
 $champ_commentaire[] = ($row[7]);
 
 $champ_mail[] = ($row[8]);
 
 
 }
 
 $compteur=count($champ_pays);
 
 for($i=$compteur-1;$i>-1;$i--)
 
 
Après je veux faire une boucle d'affichage des villes en fonction du pays séléctionné. Mais comme il ne lit pas la variable $lepays, il ne trouve pas de villes qui s'y rattachent, forcément...
 

mood
Publicité
Posté le 25-07-2005 à 17:57:17  profilanswer
 

n°1159294
skeye
Posté le 25-07-2005 à 18:10:41  profilanswer
 

Elle sort d'où ta variable $lepays exactement?


---------------
Can't buy what I want because it's free -
n°1159913
judicael
Posté le 26-07-2005 à 11:29:48  profilanswer
 

Elle vient d'un formulaire en liste déroulante.
 
Ce premier formulaire est généré à partir d'une table Sql. On choisit un pays, et le choix entraine l'affichage des villes de ce pays dans une nouvelle liste déroulante (et c'est là que ça marche pas : la liste est vide, comme s'il n'y avait aucune ville correspondant au pays).

n°1159915
skeye
Posté le 26-07-2005 à 11:31:04  profilanswer
 

judicael a écrit :

Elle vient d'un formulaire en liste déroulante.
 
Ce premier formulaire est généré à partir d'une table Sql. On choisit un pays, et le choix entraine l'affichage des villes de ce pays dans une nouvelle liste déroulante (et c'est là que ça marche pas : la liste est vide, comme s'il n'y avait aucune ville correspondant au pays).


Non, mais dans ton script que tu as posté, là, elle est initialisée où?


---------------
Can't buy what I want because it's free -
n°1159922
judicael
Posté le 26-07-2005 à 11:36:26  profilanswer
 

Sorry je comprends pas tout à fait ta question.
 
Elle prend sa valeur du formulaire précédent. Si on choisit Allemagne dans la liste déroulante du premier form, $lepays sera Allemagne. Et comme je suis en method="post", $lepays est recueilli dans le 2e formulaire, toujours en tant que Allemagne.

n°1159923
skeye
Posté le 26-07-2005 à 11:37:55  profilanswer
 

judicael a écrit :

Sorry je comprends pas tout à fait ta question.
 
Elle prend sa valeur du formulaire précédent. Si on choisit Allemagne dans la liste déroulante du premier form, $lepays sera Allemagne. Et comme je suis en method="post", $lepays est recueilli dans le 2e formulaire, toujours en tant que Allemagne.


 
Ta variable ne peut pas passer d'une page à une autre comme ça...;)


Message édité par skeye le 26-07-2005 à 11:38:10

---------------
Can't buy what I want because it's free -
n°1159924
sielfried
Posté le 26-07-2005 à 11:38:45  profilanswer
 

Son register_globals est probablement activé.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1159926
skeye
Posté le 26-07-2005 à 11:39:16  profilanswer
 

là, ton $lepays est vide, ce qui explique ton problème.
Essaye de faire un  

Citation :


$lepays = $_POST['lepays'];


 
avant de créer ta requête, pour voir...


---------------
Can't buy what I want because it's free -
n°1159928
skeye
Posté le 26-07-2005 à 11:39:29  profilanswer
 

sielfried a écrit :

Son register_globals est probablement activé.


ou pas, ce qui expliquerait l'erreur...:o


---------------
Can't buy what I want because it's free -
n°1159934
sielfried
Posté le 26-07-2005 à 11:41:39  profilanswer
 

skeye a écrit :

ou pas, ce qui expliquerait l'erreur...:o


 
Ben pour savoir faudrait voir son formulaire, mais sprobable.


Message édité par sielfried le 26-07-2005 à 11:41:54

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
mood
Publicité
Posté le 26-07-2005 à 11:41:39  profilanswer
 

n°1159944
judicael
Posté le 26-07-2005 à 11:46:16  profilanswer
 

Si si, ca marche.
Parce que si je fais un print du $lepays sur la 2e page, il m'affiche bien "Allemagne", si j'ai sélectionné allemagne dans le premier form.

n°1159946
judicael
Posté le 26-07-2005 à 11:47:26  profilanswer
 

$lepays = $_POST['lepays'];  
 
Je le mets avant quel formulaire ? le premier (celui avec les pays) ou le 2e (celui avec les villes, qui marche pas) ?

n°1159948
skeye
Posté le 26-07-2005 à 11:48:01  profilanswer
 

judicael a écrit :

$lepays = $_POST['lepays'];  
 
Je le mets avant quel formulaire ? le premier (celui avec les pays) ou le 2e (celui avec les villes, qui marche pas) ?


celui des villes, juste avant la création de ta requête qui marche pas.


---------------
Can't buy what I want because it's free -
n°1159952
robbyone
Non pas !
Posté le 26-07-2005 à 11:49:33  profilanswer
 

Le second, jsute avant le $thequery, ou encore direc dedans :
$thequery=' SELECT * FROM user where pays="'.$_POST['lepays'].'"';   // la variable $lepays vient du formulaire précédent


---------------
La curiosité est un vilain défaut car l'erreur et la frustration sont de croire qu'elle pourra être satisfaite !
n°1159956
judicael
Posté le 26-07-2005 à 11:50:26  profilanswer
 

Mh, ça marche pas. SInon voici le code du premier formulaire :
 
<form name="pays_form" method="post" action="result_rech_pays.php">
<SELECT name="lepays" size="1">
<?
 
include("bd_connect.php" );
 
$thequery="SELECT * FROM `user` order by dateb";
 
$id = mysql_query($thequery, $variable);
 
 
while($row = mysql_fetch_row($id))
 
 {
 
 
 $champ_pseudo[] = ($row[0]);
 
 $champ_date[] = ($row[1]);
 
 $champ_pays[] = ($row[4]);
 
 $champ_ville[] = ($row[5]);
 
 $champ_langue[] = ($row[6]);
 
 $champ_commentaire[] = ($row[7]);
 
 $champ_mail[] = ($row[8]);
 
 
 }
 
 $compteur=count($champ_pays);
 
 
?>  
 
<OPTION Value="default_pays"> - Pays -
 
<?
 
 
 for($i=$compteur-1;$i>-1;$i--)
 
{  
 
?>
<OPTION Value=" <?print htmlentities("$champ_pays[$i]" ) ?>" > <?print htmlentities("$champ_pays[$i]" )?>
 
<?
 
}

n°1159960
skeye
Posté le 26-07-2005 à 11:51:55  profilanswer
 

judicael a écrit :

Mh, ça marche pas. SInon voici le code du premier formulaire :
 
<form name="pays_form" method="post" action="result_rech_pays.php">


 
Et l'autre que tu nous asa mis au début c'est bien result_rech_pays.php ?


Message édité par skeye le 26-07-2005 à 11:52:13

---------------
Can't buy what I want because it's free -
n°1159961
judicael
Posté le 26-07-2005 à 11:52:15  profilanswer
 

oui voilà

n°1159963
skeye
Posté le 26-07-2005 à 11:53:04  profilanswer
 

[:urd]
Fais un print_r($_POST) au début de result_rech_pays.php


---------------
Can't buy what I want because it's free -
n°1159967
sielfried
Posté le 26-07-2005 à 11:55:01  profilanswer
 

<select> pas fermée, <form> pas fermé non plus, mysql_fetch_row pas bô... [:mlc]


Message édité par sielfried le 26-07-2005 à 11:55:36

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1159971
skeye
Posté le 26-07-2005 à 11:55:55  profilanswer
 

sielfried a écrit :

<select> pas fermée, <form> pas fermé non plus, mysql_fetch_row pas bô... [:mlc]


Si tu pars par là ya même pas de <html>, hein...[:joce]


---------------
Can't buy what I want because it's free -
n°1159974
sielfried
Posté le 26-07-2005 à 11:57:04  profilanswer
 

skeye a écrit :

Si tu pars par là ya même pas de <html>, hein...[:joce]


 
Ouais j'ose espérer que c'est un fichier inclus.  [:spamafote]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1159976
judicael
Posté le 26-07-2005 à 11:57:28  profilanswer
 

mais si, j'ai mis qu'un extrait. Tout est bien fermé. Et je le repete, la variable passe !
 
Si je fais print ("$lepays" ); sur resul_rech_pays.php, j'ai bien le pays séléctionné qui s'affiche.

n°1159977
skeye
Posté le 26-07-2005 à 11:57:44  profilanswer
 

sielfried a écrit :

Ouais j'ose espérer que c'est un fichier inclus.  [:spamafote]


 
de toute manière c'est pas le problème...:o


---------------
Can't buy what I want because it's free -
n°1159979
sielfried
Posté le 26-07-2005 à 11:58:14  profilanswer
 

Et si tu print $_POST['lepays'] ca affiche quoi ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1159980
skeye
Posté le 26-07-2005 à 11:58:34  profilanswer
 

judicael a écrit :

mais si, j'ai mis qu'un extrait. Tout est bien fermé. Et je le repete, la variable passe !
 
Si je fais print ("$lepays" ); sur resul_rech_pays.php, j'ai bien le pays séléctionné qui s'affiche.


 
et si tu fais un echo $thequery; après l'avoir créée il y a quoi dedans?:o


---------------
Can't buy what I want because it's free -
n°1159986
sielfried
Posté le 26-07-2005 à 12:01:23  profilanswer
 

skeye a écrit :

de toute manière c'est pas le problème...:o


 
Ben si le <form> était pas fermé chui pas sûr que ça balance quoi que ce soit à la page cible. :o  
 
Mais il a filé qu'un extrait, alors. [:spamafote]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1160002
judicael
Posté le 26-07-2005 à 12:07:37  profilanswer
 

Si je mets ça (sur le 2e) ?
 
$thequery=' SELECT * FROM user where pays="'.$lepays.'"';
echo ($thequery);
 
Rien ne s'affiche !

n°1160003
sielfried
Posté le 26-07-2005 à 12:08:12  profilanswer
 
n°1160008
skeye
Posté le 26-07-2005 à 12:09:25  profilanswer
 

echo n'est pas une fonction.
 
echo $thequery;
 
pas  
 
echo ($thequery);


---------------
Can't buy what I want because it's free -
n°1160011
robbyone
Non pas !
Posté le 26-07-2005 à 12:10:53  profilanswer
 

Je suppose que la cote manquante en fin de ligne est une erreur de frappe sur le forum ???


---------------
La curiosité est un vilain défaut car l'erreur et la frustration sont de croire qu'elle pourra être satisfaite !
n°1160012
judicael
Posté le 26-07-2005 à 12:11:04  profilanswer
 

ah oui au temps pour moi !
 
SELECT * FROM user where pays=" allemagne"  
 
c'est dingue !!

n°1160016
sielfried
Posté le 26-07-2005 à 12:12:00  profilanswer
 

Bon ben manque une majuscule...


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1160017
skeye
Posté le 26-07-2005 à 12:12:21  profilanswer
 

judicael a écrit :

ah oui au temps pour moi !
 
SELECT * FROM user where pays=" allemagne"  
 
c'est dingue !!


Dans une requête SQL une chaine de caractères est délimitée par ' ', pas " ", normalement.
Essaie de tester ta requête obtenue directement dans ton sgbd, pour voir...


---------------
Can't buy what I want because it's free -
n°1160019
robbyone
Non pas !
Posté le 26-07-2005 à 12:12:30  profilanswer
 

C'est bizarre quand tu dis que ça marches en remplaçant la variable par un nom de ville !?!


---------------
La curiosité est un vilain défaut car l'erreur et la frustration sont de croire qu'elle pourra être satisfaite !
n°1160021
sielfried
Posté le 26-07-2005 à 12:12:52  profilanswer
 

Et puis y'a un espace qui traîne là.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1160032
judicael
Posté le 26-07-2005 à 12:14:53  profilanswer
 

Oui je suis formel, si je remplace par le bon nom, ça marche...
 
Ah mais !! y a ce putain d'espace là, avant "allemagne" dans la requete, c'est ça qui fait tout foirer !!

n°1160033
skeye
Posté le 26-07-2005 à 12:15:11  profilanswer
 

sielfried a écrit :

Et puis y'a un espace qui traîne là.


très juste.:o


---------------
Can't buy what I want because it's free -
n°1160037
judicael
Posté le 26-07-2005 à 12:15:26  profilanswer
 

(grilled)  
 
- 'tail c'est mon dépucelage de grilled -

n°1160040
sielfried
Posté le 26-07-2005 à 12:16:16  profilanswer
 

$thequery = 'SELECT * FROM user where pays=\'' . $_POST['lepays'] . '\'';


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1160042
robbyone
Non pas !
Posté le 26-07-2005 à 12:16:55  profilanswer
 

Vi, dans ton code tu mets un espace entre la double-cote et le signe <?
 
<OPTION Value="<? print htmlentities( "$champ_pays[$i]" ); ?>"><? print htmlentities( "$champ_pays[$i]" ); ?>


Message édité par robbyone le 26-07-2005 à 12:18:14

---------------
La curiosité est un vilain défaut car l'erreur et la frustration sont de croire qu'elle pourra être satisfaite !
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Pb Php/sql, gestion d'une liste dynamique

 

Sujets relatifs
liste générée a partir de champs contenus dans 2 tablesInsérer une même liste déroulante sur beaucoup de pages
[PHP/mySQL] conseils d'optimisationModifier un fichier PDF avec PHP
Macro Excel: gestion des feuilles ActiveSheet ...Aide pour amelioration script PHP
[prog PHP][resolu] Faire un PHP qui archive un site[PHP] Utiliser un framework MVC ?
[PHP] Récupérer l'url de la page cible protégée?PHP dans Java Script
Plus de sujets relatifs à : Pb Php/sql, gestion d'une liste dynamique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR