Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: didouchy le le 16-08-2011 a 10:59:43

Titre: menu déroulant php & MySQL
Posté par: didouchy le le 16-08-2011 a 10:59:43

Bonjour à tous :)

Donc voilà je suis en train de créer un site internet depuis presque 1 ans ( une passion à côté du travail :P ) et je rencontre un problème avec un menu déroulant en php et MySQL

Je m'explique:
J'ai créer une table pays dont j'ai mit un champ id et pays classé par odre ID.

Le problème n'est pas dans ma base de donné mais le code php en lui même
Je met mon code directement pour vous puissiez voir:

<?php
$dnn = mysql_fetch_array(mysql_query('SELECT id,pays FROM pays'));

   echo '<select name="pays">';
   echo '<option value="'.$row2['id'].'">'.$row2['pays'].'</option>';
   
echo '</select><br />';
?>

Le souci est que rien ne s'affiche dans mon menu déroulant :-\

Besoin d'un peut d'aide :) Merci de vos réponses futur

Titre: Re:menu déroulant php & MySQL
Posté par: Wolf18 le le 16-08-2011 a 11:34:29

Salut,
c'est normal, en fait ta requête renvoie plusieurs résultats on est d'accord. Donc tu dois faire une boucle pour afficher chacun d'entre eux, à l'aide de WHILE par exemple.


Code:
$dnn = mysql_query('SELECT id,pays FROM pays');

echo '<select name="pays">';

// boucle
while($info_pays = mysql_fetch_array($dnn))
{ echo '<option value="'.$info_pays['id'].'"> '.$info_pays['pays'].'</option>';
}

echo '</select><br />';

Titre: Re:menu déroulant php & MySQL
Posté par: didouchy le le 16-08-2011 a 11:52:17

Haa ! Merci beaucoup je vient de comprendre et je suis parti voir sur php manual :)

Car j'ai essayé ceci de mon côté

   $bdd = new PDO('mysql:host=sql.site.com;dbname=truc1', 'truc2', 'pass');
   $select = 'SELECT id,pays FROM pays ORDER BY id';
   $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
   while($row2=mysql_fetch_array($result)) {
   echo '<select name="pays">';
   echo '<option value="'.$row2['id'].'">'.$row2['pays'].'</option>';
   }
echo '</select><br />';

Mais il m'affiché tout les pays mit dans ma base de donné avec qu'un seul champ dans un menu déroulant =/

Merci Wolf18 :) Parcontre, j'ai un souci d'encodage =S Je suis parti voir dans ma table et je l'est mit en UTF-8 mais rien n'y fait, aurait-tu une idée sur ce point-ci ?

Titre: Re:menu déroulant php & MySQL
Posté par: didouchy le le 16-08-2011 a 13:18:54

Re,

J'ai un souci =S

En faite ce système de menu déroulant je souhaité l'utilisé pour mon espace membre et quand je met par exemple " France " et que je valide, dans ma base de donné c'est écrit ' 20 ' qui représente mon l'age du membre. J'ai regardé dans mon code et apparament je n'est pas de problème, j'ai tout bien mit =S

Titre: Re:menu déroulant php & MySQL
Posté par: Pad le le 16-08-2011 a 15:05:00

tu as indiqué dans ton code de récupérer l'id du pays et non le nom du pays d'où le nombre 20 enregistré dans ta base de donnée :

echo '<option value="'.$row2['id'].'">'.$row2['pays'].'</option>';

Titre: Re:menu déroulant php & MySQL
Posté par: didouchy le le 16-08-2011 a 15:28:47

Je n'est pas comprit ta réponse Pad :-X

J'ai déjà ce que tu me dit.

Le problème est que dans mon champ " age " quand je met 20 sa me met 20 dans pays

Quand je met 30 dans le champ age via l'édition du profil, sa me 30 dans le pays aussi ... ?? Je ne trouve pas le problème :(

Titre: Re:menu déroulant php & MySQL
Posté par: Pad le le 16-08-2011 a 15:49:56

Quand tu affiche ta liste déroulante avec tes pays tu indiques aussi son id (le numéro qui est unique et qui est associé à ton pays dans ta table SQL 1->france,2->argentine...

Et quand tu enregistre le choix de la liste déroulantes des pays tu n'as pas le pays d'enregistré mais son id associé (en gras)

echo '<option value="'.$row2['id'].'">'.$row2['pays'].'</option>';

suffit donc de changer cela par :

echo '<option value="'.$row2['pays'].'">'.$row2['pays'].'</option>';

Titre: Re:menu déroulant php & MySQL
Posté par: didouchy le le 16-08-2011 a 15:56:03

C'est pareil ???

J'ai ceci:

<?php $dnn = mysql_query('SELECT id,pays FROM pays');
echo '<select name="pays">';
while($info_pays = mysql_fetch_array($dnn))
{ echo '<option value="'.$info_pays['pays'].'"> '.$info_pays['pays'].'</option>';
}
echo '</select><br />';
?>

la variable $dnn correspond à mon fichier pour me connecté à ma base de donné qui est constitué comme-ci:

<?php
session_start();
// connexion BDD
mysql_connect('sql.hebergeur.com', 'truc1', 'pass');
mysql_select_db('truc2');
?>

Titre: Re:menu déroulant php & MySQL
Posté par: Wolf18 le le 16-08-2011 a 18:07:51

Vérifies alors comment tu récupères tes valeurs en $_POST.. Et surtout que tu insère bien la bonne valeur dans ta base de données : $_POST['pays']

Car suivant le dernier bout de code que tu donnes, ça devrait bien enregistré le nom du pays...

Titre: Re:menu déroulant php & MySQL
Posté par: didouchy le le 16-08-2011 a 18:12:40

J'ai trouvé mon erreur :)

Par contre, je rentre un autre problème =S

Je souhaiterai avoir un drapeau quand j'utilisateur choisi son pays qu'il s'affiche sous forme de drapeau au lien de texte, c'est possible ?


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.