Page 1 sur 1

Menu déroulant au sein d'une SQL

Posté : 28 juil. 2006, 08:25
par beansoldier
Bonjour !

J'ai testé de mettre un menu déroulant dont les informations "internes" proviennent d'une requete SQL
Cependant je n'arrive pas à faire en sorte que tout se mettent dans un même menu déroulant. Il m'en fait pleins!
Malgré mes recherches je ne trouve pas la solution :/
<?php 
// on se connecte à MySQL 
$db = mysql_connect('***', '***', '***'); 

// on sélectionne la base 
mysql_select_db('Boosters',$db);

{ 
// on crée la requête SQL 
$sql = 'SELECT * FROM Boosters ORDER BY Reference_Booster ASC'; 
}

// on envoie la requête 
$req = mysql_query($sql) or die('Erreur SQL !<br><font size="2">'.$sql.'<br>'.mysql_error()); 

// on fait une boucle qui va faire un tour pour chaque enregistrement 
while($data = mysql_fetch_assoc($req)) 
    { 
    // on affiche les informations de l'enregistrement en cours 
    echo '<SELECT name="Type_Carte">
      <OPTION selected></OPTION>
      <OPTION value="'.$data['Nom_Booster'].'">'.$data['Nom_Booster'].'</OPTION>
    </SELECT>';
    } 

// on ferme la connexion à mysql 
mysql_close(); 
?>
Je m'en doutais que cela en crerai pleins mais je ne trouve pas la documentation adapté a ce problème :/

Quelqu'un pourrait-il m'aider ?

Merci :oops:

Re: Menu déroulant au sein d'une SQL

Posté : 28 juil. 2006, 10:28
par momox
<?php 
// on se connecte à MySQL 
$db = mysql_connect('***', '***', '***'); 

// on sélectionne la base 
mysql_select_db('Boosters',$db);

{ 
// on crée la requête SQL 
$sql = 'SELECT * FROM Boosters ORDER BY Reference_Booster ASC'; 
}

// on envoie la requête 
$req = mysql_query($sql) or die('Erreur SQL !<br><font size="2">'.$sql.'<br>'.mysql_error()); 

// on fait une boucle qui va faire un tour pour chaque enregistrement 
while($data = mysql_fetch_assoc($req)) 
    { 
    // on affiche les informations de l'enregistrement en cours 
    echo '<SELECT name="Type_Carte">
      <OPTION selected></OPTION>
      <OPTION value="'.$data['Nom_Booster'].'">'.$data['Nom_Booster'].'</OPTION>';
    } 
echo '</SELECT>';
// on ferme la connexion à mysql 
mysql_close(); 
?>
Dans le script précedent, le problème est que tu as inclus un menu déroulant entier dans la boucle, aloirs qu'il ne fallait inclure que le parametre...
Donc la solution serait plutôt:
<?php 
// on se connecte à MySQL 
$db = mysql_connect('***', '***', '***'); 

// on sélectionne la base 
mysql_select_db('Boosters',$db);

{ 
// on crée la requête SQL 
$sql = 'SELECT * FROM Boosters ORDER BY Reference_Booster ASC'; 
}

// on envoie la requête 
$req = mysql_query($sql) or die('Erreur SQL !<br><font size="2">'.$sql.'<br>'.mysql_error()); 

// on fait une boucle qui va faire un tour pour chaque enregistrement 
echo '<SELECT name="Type_Carte">';
echo '<OPTION selected></OPTION>';
while($data = mysql_fetch_assoc($req)) 
    { 
    // on affiche les informations de l'enregistrement en cours 
      echo '<OPTION value="'.$data['Nom_Booster'].'">'.$data['Nom_Booster'].'</OPTION>';
    } 
echo '</SELECT>';
// on ferme la connexion à mysql 
mysql_close(); 
?>
c'est plus logique étant donné qu'il n'y a que l'option a repeter et non la liste déroulante ;)
@+

Posté : 28 juil. 2006, 10:47
par beansoldier
Ok c'est cool merci je comprend mieux le principe j'en prend bonnes notes :wink:

Posté : 28 juil. 2006, 11:16
par beansoldier
Est-ce normal qu'on ne puisse pas formaté le texte au sein de la selection ?

par exemple si je fais :
echo '<OPTION value="'.$data['Nom_Booster'].'">[b]'.$data['Nom_Booster'].'[/b]</OPTION>';
Ca ne marche pas il ne le met pas en gras...

Merci d'avance

EDIt : en effet même ici il ne l'affiche pas :/

Idem quand je veux mettre une image à l'intérieur, il ne veux rien afficher :cry:

Posté : 28 juil. 2006, 12:04
par Truc
Il n'y a rien qui dit de mettre du gras ici:
echo '<OPTION value="'.$data['Nom_Booster'].'">'.$data['Nom_Booster'].'</OPTION>';
Tu veux placer une image dans la liste SELECT ?!

Posté : 28 juil. 2006, 12:56
par beansoldier
sisi jte jure j'ai mis <b></b> mais il l'affiche pas :)

oui par exemple je veux qu'if affiche dans le menu déroulant :

l'image de la langue / reference / nom

or il arrive pas à afficher l'image

:oops:

Posté : 28 juil. 2006, 13:23
par Truc
Une liste ne supporte que du texte simple (sans formatage).

Tu peux mettre du gras mais en passant par du CSS et l'image c'est impossible.

Tu peux éventuellement construire une vrai fausse liste avec un div imitation liste toujours avec du CSS pour placer une image.