Page 1 sur 1

remplire un select via bdd

Posté : 16 sept. 2009, 17:31
par fabrice88250
je voudrait remplir un select en fonction d'un champ de ma base de données sql.
les données dans mon champ "types" sont par exemple : paysages villes montagnes paysages paysages autres ....
et dans mon select je voudrai automatiquement avoir : paysages montagnes autres villes

Actuellement je remplissait mon select moi meme mais je me suis dit pourquoi ne pas automatiser le chose.

--> mon code acutel est:
<form action="search.php" method="post">
Rechercher par 
<select name="rechercherpar">
<option>Paysages</option>
<option>Villes et Villages</option>
</select>
Mot clé
<input type="text" name="mot_cle">
<input type="submit" value="Rechercher">
</form>
comment automatiser le remplissage du select ?

Re: remplire un select via bdd

Posté : 16 sept. 2009, 17:52
par AB
je voudrait remplir un select en fonction d'un champ de ma base de données sql.
les données dans mon champ "types" sont par exemple : paysages villes montagnes paysages paysages autres ....
et dans mon champ je voudrai automatiquement avoir : paysages montagnes autres
C'est possible ou pas possible, ça dépend. Tu veux faire quoi ? Enlever les doublons ?

Si oui ton exemple n'est pas bon car il devrait y avoir "ville" dans ton select.
Ou alors enlever les doublons et supprimer "ville" ?

L'automatisation est possible si tu arrives à la formaliser clairement.

Re: remplire un select via bdd

Posté : 16 sept. 2009, 18:21
par fabrice88250
oui désolé j'ai edité.
et oui je voudrais evité les doublons dans mon select et donc ne recuperer dans que les types differents.

Re: remplire un select via bdd

Posté : 16 sept. 2009, 18:39
par AB
Trivialement tu peux faire comme ceci :
$chaine = 'paysages villes montagnes paysages paysages autres';

$tab_mot = explode(' ',$chaine);
$tab_mot = array_unique($tab_mot);

// Vérification du tableau retourné :
echo '<pre>';
print_r($tab_mot);
echo '</pre>';

Re: remplire un select via bdd

Posté : 16 sept. 2009, 19:25
par fabrice88250
n'ayant pas reussi avec ta methode j'ai trouvé une autre solution pour qu'il n'y ai pas de doublons
$sql = "SELECT DISTINCT type FROM IWgalerie"; // requéte SQL   
		$req = mysql_query($sql) or die('<u>Probleme SQL</u> : '.$sql.'<br>'.mysql_error());  // envoie de la requéte 

        while($resultat = mysql_fetch_array($req))   
		{
		echo $resultat['type'].'<br/>';
		}
du coup j'affiche bien juste les types et une seule fois mais je ne comprend pas comment avoir le resultat dans un select de mon formualire.

Re: remplire un select via bdd

Posté : 17 sept. 2009, 10:06
par iclo
Il te reste juste à mixer ton code qui récupère les valeurs dans la db avec le code html de ton select:

Au lieu d'avoir les valeurs de tes options directement le code, tu vas utiliser celles qui proviennent de la db:
<form action="search.php" method="post">
Rechercher par
<select name="rechercherpar">
<?php
$sql = "SELECT DISTINCT type FROM IWgalerie"; // requéte SQL  
                $req = mysql_query($sql) or die('<u>Probleme SQL</u> : '.$sql.'<br>'.mysql_error());  // envoie de la requéte

        while($resultat = mysql_fetch_array($req))  
                {
                echo '<option>'.$resultat['type'].'</option';
                }
?>
</select>
<input type="text" name="mot_cle">
<input type="submit" value="Rechercher">
</form>