Fonction php et requete sql

Fermé
Mex0s Messages postés 60 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 2 septembre 2014 - Modifié par Mex0s le 28/09/2010 à 12:41
Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 - 28 sept. 2010 à 12:12
Bonjour,

J'ai une table 'produits' qui possède plusieurs colonnes ( 'marque' 'type' 'taille' ).
Je souhaite créer un formulaire dans lequel on puisse séléctionner une 'marque' , 'taille' etc.. parmi celles que l'on peut trouver dans la colonne correspondante.

J'ai donc voulu créer une fonction pour ne pas avoir à le faire pour chaque colonne, mais je n'ai encore jamais vraiment créé de fonction et elle doit contenir plusieurs erreurs (rien qu'au niveau de la requete sql, je ne sais pas bien comment intégrer du php).

Voici ma fonction (attention à $colonne et $colonneS) :

function selectForm($colonne){
$sql = "SELECT '$colonne' FROM produits";
$reponse = mysql_query($sql) or die(mysql_error());
while ($ligne = mysql_fetch_array($reponse)) {
$colonnes[] = $ligne[0]; }
$nb = count($colonnes);

for ($i=0; $i<=$nb; $i++){
if ($colonnes[$i] != ''){
echo '<option>';
echo $colonnes[$i];
echo '</option>';
}
}
}

Les 2 parties de la fonctions marchent déja séparemment.

Placée dans un <form><select> </select></form>, si je lui donne l'attribut "marque" je voudrais qu'elle me restitue un menu déroulant contenant les marques contenues dans la colonne "marque" de ma table.
Pour le moment, le menu déroulant contient 5 fois l'entrée "marque", comme si $colonnes[$i] est toujours égal à $colonne.

J'espere que vous comprendrez et que vous serez en mesure de m'aider.

Par avance, merci :).

A voir également:

1 réponse

Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 688
28 sept. 2010 à 12:12
Bonjour,

La requête me semble correct, cependant si elle ne fait pas ce que tu attend ou si la requête plante, il serait utile de rajouter :

or die(mysql_error());

après ton mysql_query.
0