Étapes
- Ouvrir la base de données (la sélectionner)
- Exécuter la requête.
- Commencer l'écriture de la liste déroulante
- Pour chaque résultat, afficher une option et tester si on doit la sélectionner.
- Terminer en beauté
<?php
// Constante pour les changements de ligne
define ( 'BR', '<br />'); // Balise BR en XHTML.
define ( 'NL', "\n"); // Retour de ligne Unix
// Connexion à la base de données
$db = mysql_connect('serveur','nomUsager','motDePasse') or echoMyError();
mysql_select_db('nomDeLaBaseDeDonnee', $db) or echoMyError();
// on sélectionne le id 5.
echoSelect( 'SELECT idTable as theValue, txtTable as theText FROM nameTable', 5, 'nomSelect', $db );
mysql_close($db);
/**
* Fonction qui écrit un sélect selon une requête SQL
* @param $pSQLSelect La requête SQLSelect doit contenir deux champs, theValue et theText
* @param $pValue La valeur sélectionnée par le select
* @param $pSelectName Nom de la balise select (attribut name)
* @param $pDb La ressource vers la base de données
*/
function echoSelect ( $pSQLSelect, $pValue, $pSelectName, $pDb ) {
// Exécution de la requête
if ( ($result = mysql_query($pSQLSelect, $pDb)) ) {
// mysql_num_rows permet d'afficher le select seulement s'il y a des lignes à afficher
if ( mysql_num_rows($result) ) {
// on débute l'élément SELECT avant le While
echo '<select name="'.$pSelectName.'">' . NL;
// boucle parmit tous les enregistrements
while( ($obj=mysql_fetch_object($result) ) ) {
echo '<option value="'.$obj->theValue.'"';
// on regarde à chaque option si on doit la sélectionner ou non
if ( $obj->theValue === $pValue ) {
echo ' selected="selected"';
}
echo '>' . $obj->theText . '</option>' . NL;
}
// on finit l'élément SELECT
echo '</select>' . NL
} // on finit le if pour le select
} else {
echoMyError($pSQLSelect);
}
}
/**
* Affiche les erreurs MySQL avec un message
* supplémentaire s'il y a lieu
* @param $pStr Supplément, non obligatoire
*/
function echoMyError( $pStr='' ) {
echo 'Erreur MySQL: ' . mysql_error() . BR;
if ( $pStr != '' ) {
echo 'Supplément: ' . $pStr . BR;
}
}
?>
Lire les commentaires | Laisser un commentaire