Afficher base de données [Résolu]

- - Dernière réponse : sylvain64520
Messages postés
130
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
7 juin 2013
- 4 janv. 2013 à 17:04
$row = mysql_query("SELECT COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'personne' AND COLUMN_NAME = 'situation'");	
$res = mysql_fetch_array($row);
preg_match_all( "/'(.*?)'/", $res[0], $val );
echo '<select>';
foreach ($res as $res2)
echo '<option value="'.$res2.'">'.$res2.'</option>';
echo '</select>';


j'ai réalisé ce code pour pouvoir visualisé dans une liste déroulante toutes les valeurs de mon type ENUM ! mais je visualise toutes les variables en même temps .
exemple : ma liste déroulante ne fait qu'une ligne et contient set('célibataire','En couple','Pacsé','divorcé','veuf') alors que je voudrais plusieurs ligne avec ligne 1 : célibataire , ligne 2 : En couple ....
comment puis-je faire ? avez vous des idées ?

merci d'avance
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
3
Merci
j'ai changé de tactique j'ai fait cela pour récuperer les valeurs une par une !

$ress = mysql_query('SHOW COLUMNS FROM personne LIKE "situation" ');// requete pour chercher les valeurs dans SET
$ligne = mysql_fetch_array($ress);//je met les valeurs dans un tableau
$type = substr($ligne['Type'], 5, (strlen($ligne['Type'])-7));//je les traites en enlevant les premier caractere
$mon_enum = preg_split('#\',\'#', $type);//j'eneleve les guiellemets et les virgules
echo '<select>';
for ($i=0 ; $i<6 ; $i++)// boucle pour afficher les 6 valeurs de mon tableau dans un <select>
echo '<option value="'.$mon_enum[$i].'">'.$mon_enum[$i].'</option>';
echo '</select>';


Allez L'OL

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 152 internautes nous ont dit merci ce mois-ci

Commenter la réponse de marc73450
Messages postés
130
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
7 juin 2013
0
Merci
A la place du foreach, j'aurais utilisé une fonction fetch.

NB : Pas conseillé d'utiliser mysql_fetch_array, passe à PDO ;)
Commenter la réponse de sylvain64520
0
Merci
je ne maitrise pas PDO . donc je fais avec les moyens du bord ! pouurait tu me dire ce qui change dans mon code si je passe en PDO STP ?

merci d'avance
Commenter la réponse de marc73450
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
7
0
Merci
bonjour
tu peux utiliser multiple

<?php
$row mysql_query("SELECT COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME 'personne' AND COLUMN_NAME = 'situation'");	
$res = mysql_fetch_array($row);
preg_match_all( "/'(.*?)'/", $res[0], $val );
echo '<select multiple>';
foreach ($res as $res2)
echo '<option value="'.$res2.'">'.$res2.'</option>';
echo '</select>';

?>


Bonne programmation !
Commenter la réponse de cod57
0
Merci
bonjour

Mais à quoi me servirais multiple ?
j'ai essayé mais c'est pas ce que je veux , ça permet juste de choisir plusieurs choix c'est tout

merci quand même !
Commenter la réponse de marc73450
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
7
0
Merci
tu peux faire print_r ...

<?php
$row mysql_query("SELECT COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME 'personne' AND COLUMN_NAME = 'situation'");	

$res = mysql_fetch_array($row);

$ca = preg_match_all( "/'(.*?)'/", $res[0], $val ); /*ça sert à quoi ?*/

echo '';
var_dump($ca);
print_r($res);
echo '

';

$select='<select multiple>';
foreach($res as $res2){
$select.='<option value="'.$res2.'">'.$res2.'</option>';
}
$select.='</select>';

echo $select;


?>


Bonne programmation !
Commenter la réponse de cod57
Messages postés
130
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
7 juin 2013
0
Merci
PDO est une nouvelle technologie utilisant le principe d'objet. Il y a plusieurs tuto sympa sur le net pour pouvoir s'y mettre tranquillement.

Moi aussi je voulais faire avec les moyens du bord sauf que si l'on reste sur ses acquis, on n'avance jamais.

Cool que tu ais trouvé la solution tout seul ;)
Commenter la réponse de sylvain64520