Page 1 sur 1

Remplir une liste automatiquement

Posté : 08 mars 2012, 10:58
par jujurochedu42
Bonjour,

J'ai 3 listes qui me permettent de faire une recherche. Dans ces trois listes, j'ai mis les valeurs en dur comme ceci :

Code : Tout sélectionner

<form id="recherche" action="index.php?module=catalogue&page=recherche" method="post"> <label>Recherche d'un voyage: </label> <SELECT name="type"> <OPTION VALUE="">CHOISIR UN TYPE&nbsp;</OPTION> <OPTION VALUE="journee">Journ&eacute;e</OPTION> <OPTION VALUE="avion-croisiere">Avion-Croisi&egrave;re</OPTION> <OPTION VALUE="france">France</OPTION> <OPTION VALUE="europe">Europe</OPTION> <OPTION VALUE="privilege">Privil&egrave;ge</OPTION> </SELECT> </form>

Je souhaiterais que la liste se remplisse automatiquement en fonction de ma base.

La requête est la suivante : SELECT `type` FROM `catalogue. Je n'ai pas d'idée comment faire, pourriez vous m'éclairez svp ?

Re: Remplir une liste automatiquement

Posté : 08 mars 2012, 11:09
par xTG
Voilà la base :
$sql = 'SELECT id, nom FROM maTable';
$res = mysqli_query($sql);
echo '<select name="monSelect">';
if( mysqli_num_rows($res) > 0 ){
  while( $data = mysqli_fetch_array($res) )
    echo '<option value="' . $data['id'] . '">' . $data['nom'] . '</option>';
}
echo '</select>';

Re: Remplir une liste automatiquement

Posté : 08 mars 2012, 12:39
par jujurochedu42
Merci pour la réponse

voici le code adapté :

 <?php
				
				$sql = 'SELECT DISTINCT type FROM catalogue';
				$res = mysqli_query($sql);
				echo '<select name="type">';
				if( mysqli_num_rows($res) > 0 )
				{
 				while( $data = mysqli_fetch_array($res) )
    			echo '<option value="' . $data['type'] . '">' . $data['type'] . '</option>';
				}
				echo '</select>';
				
?>		



Par contre j'ai l'erreur suivante :

mysqli_query() expects at least 2 parameters, 1 given 

Apparemment il me manque un paramètre ?

Re: Remplir une liste automatiquement

Posté : 08 mars 2012, 12:44
par jujurochedu42
C'est bon, problème résolu de la façon suivante :

<?php
$bdd = mysqli_connect('localhost', 'test', 'test', 'test');
$sql = 'SELECT DISTINCT type FROM catalogue';
$res = mysqli_query($bdd,$sql);
echo '<select name="type">';
if( mysqli_num_rows($res) > 0 )
{
while( $data = mysqli_fetch_array($res) )
echo '<option value="' . $data['type'] . '">' . $data['type'] . '</option>';
}
echo '</select>';

?>

Re: Remplir une liste automatiquement

Posté : 08 mars 2012, 12:51
par dix2
salut,

voici la signature de la fonction mysqli_query :
mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

ce qui signifie qu'il y a 2 paramètres obligatoires et un parametre optionnel dont la valeur par défaut est MYSQLI_STORE_RESULT

le 1er parametre obligatoire est ta connexion à la base de données et le 2eme ta requete

ton $link, tu l'obtiens avec :
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
à placer, bien entendu, avant l'appel de la fonction mysqli_query

dix2
ps : un conseil : enregistre le site http://www.php.net dans tes favoris :wink: