Liste deroulante et base de données
mimikely
-
avion-f16 Messages postés 19254 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 19254 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
salut a tous,j'ai un petit soucis avec mon exercice.au fait,je voulais recuperer quelques valeurs dans une table de ma base de données et les mettrent dans une liste deroulante:
je vais essayer de donner un peu de precision:
Dans la table"fournisseur" ,je voudrais mettre dans ma liste deroulante les noms des fournisseurs.Voici le code que j'ai fais mais marche pô:
<?php
echo("<table border=0>");
echo("<form name='formulaire' method='post'>");
echo("<tr><td>nom fournisseur:</td><td>");
echo("<select name='listefournisseur'>");
echo("<option>choisissez</option>");
$con=mysql_connect("localhost","root","");
if(!$con)
{
echo"erreur de connexion";
}
else
{
mysql_select_db("ex1",$con);
$ql="SELECT nomfournisseur FROM fournisseur";
$resultat=mysql_query($sql);
while($tab= mysql_fetch_array($resultat))
{
echo"<option value=\"".$tab["numfournisseur"]."\">".$tab["nomfournisseur"]."</option>"."</td></tr>";
}
}
echo("</select>");
echo("<tr><td><input type='submit' name='envoyer' value='afficher'></td></tr>");
echo("</form>");
echo("</table>");
?>
Merci beaucoup pour votre aide!!
salut a tous,j'ai un petit soucis avec mon exercice.au fait,je voulais recuperer quelques valeurs dans une table de ma base de données et les mettrent dans une liste deroulante:
je vais essayer de donner un peu de precision:
Dans la table"fournisseur" ,je voudrais mettre dans ma liste deroulante les noms des fournisseurs.Voici le code que j'ai fais mais marche pô:
<?php
echo("<table border=0>");
echo("<form name='formulaire' method='post'>");
echo("<tr><td>nom fournisseur:</td><td>");
echo("<select name='listefournisseur'>");
echo("<option>choisissez</option>");
$con=mysql_connect("localhost","root","");
if(!$con)
{
echo"erreur de connexion";
}
else
{
mysql_select_db("ex1",$con);
$ql="SELECT nomfournisseur FROM fournisseur";
$resultat=mysql_query($sql);
while($tab= mysql_fetch_array($resultat))
{
echo"<option value=\"".$tab["numfournisseur"]."\">".$tab["nomfournisseur"]."</option>"."</td></tr>";
}
}
echo("</select>");
echo("<tr><td><input type='submit' name='envoyer' value='afficher'></td></tr>");
echo("</form>");
echo("</table>");
?>
Merci beaucoup pour votre aide!!
A voir également:
- Liste deroulante et base de données
- Liste déroulante excel - Guide
- Fuite données maif - Guide
- Liste déroulante en cascade - Guide
- Base de registre - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
3 réponses
Salut.
echo n'est pas vraiment une fonction mais une structure du langage, tu n'es pas obligé de mettre des parenthèses autour.
Je te déconseille de faire des echo de texte statique quand il n'y a aucune condition pour son affichage, comme le code HTML du formulaire qui est fixe (excepté le contenu de la liste) et qui s'affiche toujours.
Pour l'alignement dans les formulaires, il ne faut pas utiliser les tableaux. D'ailleur, ils ne doivent jamais servir à la mise en page (colonnes) : ils servent à afficher des données structurées.
Pour un code plus propre, je stockerais la liste des fournisseurs dans une variables afin de ne pas mélanger le HTML ave le PHP. Je réutiliserais cette variable (contenant un tableau) pour faire une boucle foreach.
Pour être plus clair :
J'ai codé directement dans la zone de texte, il pourrait y avoir des erreurs de frappe.
echo n'est pas vraiment une fonction mais une structure du langage, tu n'es pas obligé de mettre des parenthèses autour.
Je te déconseille de faire des echo de texte statique quand il n'y a aucune condition pour son affichage, comme le code HTML du formulaire qui est fixe (excepté le contenu de la liste) et qui s'affiche toujours.
Pour l'alignement dans les formulaires, il ne faut pas utiliser les tableaux. D'ailleur, ils ne doivent jamais servir à la mise en page (colonnes) : ils servent à afficher des données structurées.
Pour un code plus propre, je stockerais la liste des fournisseurs dans une variables afin de ne pas mélanger le HTML ave le PHP. Je réutiliserais cette variable (contenant un tableau) pour faire une boucle foreach.
Pour être plus clair :
<?php // Paramètres MySQL define('DB_HOST','localhost'); define('DB_USER', 'root'); define('DB_PASS', ''); define('DB_NAME', 'cours'); // Connexion à MySQL mysql_connect(DB_HOST, DB_USER, DB_PASS); mysql_select_db(DB_NAME); // Exécution de la requête SQL $sql = 'SELECT nomfournisseur FROM fournisseur'; $result = mysql_query($sql); // Stockage du résultat dans un array $fournisseurs = array(); while($fournisseur = mysql_fetch_assoc($req)) { $fournisseurs[] = $fournisseur['nomfournisseur']; } // Fermeture de la connexion à MySQL mysql_close(); ?> <form name="formulaire" method="post" action="cible.php"> <div> <label for="fournisseur_id">Fournisseur :</label> <select name="fournisseur" id="fournisseur_id"> <?php foreach($fournisseurs as $fournisseur) : ?> <option value="<?php echo $fournisseur; ?>"><?php echo $fournisseur; ?></option> <?php endforeach; ?> </select> </div> <div> <input type="submit" value="Envoyer" /> </div> </form>
J'ai codé directement dans la zone de texte, il pourrait y avoir des erreurs de frappe.
ça marche nickel!merci beaucoup Avion -f16 surtout pour tes conseils,c'est sympa!
je ne veux pas t'embêter mais y a t il une autre manière de realiser la même chose sans utiliser la boucle foreach,juste pour savoir.Merci encore!
je ne veux pas t'embêter mais y a t il une autre manière de realiser la même chose sans utiliser la boucle foreach,juste pour savoir.Merci encore!
Oui, tu peux mettre le code du HTML au milieu du code PHP, et faire les echo directement dans la boucle while, j'ai fais ça juste pour séparer le HTML du PHP, c'est plus propre.
Voilà ce que ça donnerait :
Voilà ce que ça donnerait :
<form name="formulaire" method="post" action="cible.php"> <div> <label for="fournisseur_id">Fournisseur :</label> <select name="fournisseur" id="fournisseur_id"> <?php // Paramètres MySQL define('DB_HOST','localhost'); define('DB_USER', 'root'); define('DB_PASS', ''); define('DB_NAME', 'cours'); // Connexion à MySQL mysql_connect(DB_HOST, DB_USER, DB_PASS); mysql_select_db(DB_NAME); // Exécution de la requête SQL $sql = 'SELECT nomfournisseur FROM fournisseur'; $result = mysql_query($sql); // Affichage de la liste des fournisseurs $fournisseurs = array(); while($fournisseur = mysql_fetch_assoc($req)) { $nomfournisseur = $fournisseur['nomfournisseur']; echo '<option value="'.$nomfournisseur.'">'.$nomfournisseur.'</option>'; } // Fermeture de la connexion à MySQL mysql_close(); ?> </select> </div> <div> <input type="submit" value="Envoyer" /> </div> </form>