Rechercher : dans
Par :

Lister une table dans une liste deroulante

Dernière réponse le 14 fév 2008 à 14:24:19 samia, le 12 sep 2006 à 21:41:44 
 Signaler ce message aux modérateurs

Salut tout le monde ....je developpe un sitre web avec la technologie asp.net et je veux afficher le contenu d'une table dans une liste deroulante avec asp.net si quelqu'un peut m'aider merci d'avance

1

boss0211, le 12 sep 2006 à 21:43:24

Avec PHP (asp connais pas dsl) voici ce que sa donne:

<?php
$dbname = 'base_de_donné';

if (!mysql_connect(localhost', 'loggin', 'password')) {
   echo 'Impossible de se connecter à MySQL';
   exit;
}

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

if (!$result) {
   echo "Erreur DB, impossible de lister les tables\n";
   echo 'Erreur MySQL : ' . mysql_error();
   exit;
}
?>
<form method="post">

<select>
<?php
while ($row = mysql_fetch_row($result)) {
   echo '<option value="' .$row[0] .'" name="table">'.$row[0] . '</option>';
}

mysql_free_result($result);
echo '<br><br><br>';
?> 

</select></label>
<input type="submit" value="Envoyer" name="env">
</form>
<br><br>


ta juste a changer les passet nom de sql au début du script et c bon

Répondre à boss0211

2

samkil, le 21 aoû 2007 à 10:59:10

Merci je vais tester ;)

Répondre à samkil

3

Reivax962, le 21 aoû 2007 à 11:09:04

Bonjour,

Euh, n'essaie pas d'adapter ce script, ça n'a rien à voir avec du .net !
Déjà, quel langage utilises-tu ? C#, vb ? Il me faut ça si tu veux que je te donne directement du code.

L'idée, c'est de récupérer le résultat de ta requête dans un DataSet ou un DataTable.
Ensuite, l'objet dropdownlist a deux propriétés :
- DataTextField dans lequel tu mets le nom du champ de ta DataTable qui contient le texte qui doit apparaitre ;
- DataValueField dans lequel tu mets le nom du champ de ta DataTable qui contient l'identificateur de l'objet (la clé primaire de ta table, en général)

Tu associes le DataTable (dt) au dropdownlist (ddl) comme ceci :
ddl.DataSource = dt.DefaultView
(Si c'est un DataSet (ds) et non un DataTable, c'est pareil sauf qu'il faut prendre la table du dataset que tu veux :
ddl.DataSource = ds.Tables["Nom table" ou Index].DefaultView
)

Et enfin, il faut lancer la méthode ddl.DataBind() histoire de valider le tout.

J'espère t'avoir aidé,

Xavier

Répondre à Reivax962

4

emmanuel95, le 14 fév 2008 à 11:26:25
  • +1

Salut,

ca marche nickel,j'arrive bien à récupérer dans une table des données un champ en particulier et à l' afficher sour forme de liste de choix par contre après je n'arrive pas à récupérer ce choix :o(

Si qqun à une idée

<?php
//Cette fonction doit être appelée avant tout code html
session_start();
//On donne ensuite un titre à la page, puis on appelle notre fichier debut.php
$titre = "Liste basica";
include("includes/debut.php");
?>
<body>
<div id="banniere"></div>
<?php
//Maintenant, on se connecte à la base de données
include("includes/identifiants.php");

$sql = "select basica from applications";
$result = mysql_query($sql);
if (!$result) {
echo "Erreur DB, impossible de lister les tables\n";
echo 'Erreur MySQL : ' . mysql_error();
exit;
}
?>
<form method="post">
<select>
<?php
while ($row = mysql_fetch_row($result))
{
echo '<option value="' .$row[0] .'" name="table">'.$row[0] . '</option>';
}
mysql_free_result($result);
echo '<br><br><br>';
?>
</select>
<input value="Envoyer" name="val" type="submit">
</form>
<br>
<br>
</body>
</html>
-------------------------------------------------------------page devant afficher les informations en fonction du choix de la page davant--------

<?php
//Cette fonction doit être appelée avant tout code html
session_start();
//On donne ensuite un titre à la page, puis on appelle notre fichier debut.php
$titre = "Applications";
include("includes/debut.php");
$requette=$_POST['basica'];
?>
<body>
<div id="banniere"></div>
<?php
//Maintenant, on se connecte à la base de données
include("includes/identifiants.php");
$reponse = mysql_query ("select * from applications where basica = '$requette' ");//je récupere toutes les informations de l'application dont le code basica correspond à notre choix.

?>
<p>

<br/>
<table style="text-align: left; height: 100%; width: 80%;"
border="2" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="height: 30px; width: 20px; text-align: center;" valign="undefined">Basica</td>
<td style="height: 64px; width: 57px; text-align: center;" valign="undefined">nom</td>
<td style="width: 123px; text-align: center;" valign="undefined">Description</td>
<td style="width: 123px; text-align: center;" valign="undefined">Type</td>
<td style="width: 123px; text-align: center;" valign="undefined">Status</td>
<td style="width: 123px; text-align: center;" valign="undefined">Top Sox</td>
<td style="width: 123px; text-align: center;" valign="undefined">Ref FTCARTO</td>

</tr>
<?php
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<tr>
<td style="height: 30px; width: 20px; text-align: center;" valign="undefined"><?php echo $donnees['basica']; ?><br /></td>
<td style="height: 64px; width: 57px; text-align: center;" valign="undefined"><?php echo $donnees['nomappli']; ?><br /></td>
<td style="height: 64px; width: 57px; text-align: left;" valign="undefined"><?php echo $donnees['description']; ?><br /></td>
<td style="height: 64px; width: 57px; text-align: left;" valign="undefined"><?php echo $donnees['type']; ?><br /></td>
<td style="height: 64px; width: 57px; text-align: center;" valign="undefined"><?php echo $donnees['status']; ?><br /></td>
<td style="height: 64px; width: 57px; text-align: center;" valign="undefined"><?php echo $donnees['top sox']; ?><br /></td>
<td style="height: 64px; width: 57px; text-align: center;" valign="undefined"><?php echo $donnees['refftcarto']; ?><br /></td>

</tr>
<?php
}
mysql_close(); // Déconnexion de MySQL
?>
</tbody>
</table>
<table style="text-align: left; height: 100%; width: 80%;"
border="2" cellpadding="2" cellspacing="2">
<tbody><tr><td> cette application fait partie du bouquet x</td><td> cette application fait partie du profil métier y</td></tr>
</tbody>
</table>
<br>

Répondre à emmanuel95

5

 Reivax962, le 14 fév 2008 à 14:24:19

Bonjour,

Alors, quelques erreurs :

- <form method="post"> : attention, tu n'as pas donné le nom de la page à appeler pour le formulaire ! Pense bien à le rajouter : <form method="post" action="ta 2e page.php">

- name="table" : il faut le mettre dans le <select> et non pas dans les <option>

- $requette=$_POST['basica']; : "basica" ne correspond à rien ici ! En fait, les clés du tableau $_POST sont les "name" des éléments du formulaire d'origine. Donc ici, c'est le "name" du <select> que tu recherches. Il faut donc mettre $requette=$_POST['table'];

- valign="undefined" : tu peux virer ce truc qui ne signifie rien ^^

Voilà voilà !

Xavier

Répondre à Reivax962
Collection CommentÇaMarche.net