base MySQL dans menu déroulant
bonjour,
j'ai un petit problème de redirection
d'un menu déroulant dont les options proviennent d'une bdd MySQL
en clair, je voudrais qu'en fonction du
réalisateur choisi, s'affiche seulement les lignes comportant son nom
voilà, si quelqu'un a une idée
merci d'avance
f
j'ai un petit problème de redirection
d'un menu déroulant dont les options proviennent d'une bdd MySQL
- // d'abord le javascript :
- <script type="text/javascript">
- <!--
- function MM_jumpMenu(targ,selObj,restore){ //v3.0
- eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
- if (restore) selObj.selectedIndex=0;
- }
- //-->
- </script>
- // puis le php
- <?php
- mysql_connect("serveur", "base", "pass");
- mysql_select_db("base"); // Sélection de la base coursphp
- $reponse = mysql_query("SELECT director FROM films ORDER BY director ASC"); // Requête SQL
- $options = "";
- while(false != ($ligne = mysql_fetch_array($reponse)))
- {
- $options .= ' <option value="'. $ligne['director'] .'">'. $ligne['director'] .'</option>' . "\n";
- }
- ?>
- <select name="director" id="director" onchange="MM_director('parent',this,0)">
- <?php
- echo '<option>- réalisateurs -</option>';
- echo $options;
- ?>
- </select>
- <?php
- mysql_close()
- ?>
en clair, je voudrais qu'en fonction du
réalisateur choisi, s'affiche seulement les lignes comportant son nom
voilà, si quelqu'un a une idée
merci d'avance
f
Salut fausto,
de ce que je vois tu veux afficher tous les directos qui se trouvent dans ta BDD. Mais pour cela dans ton while il faut stocker toutes les infos dans un tableau. Puis afficher les infos du tableau en consequence, avec un foreach par exemple.
Voila, je pense que ca devrait rouler comme ca. Verifie tout de meme le foreach si ca ne fonctionne pas. Et parfois sur certains serveurs tu dois declarer ta variable comme etant un tableau, un simple:
au debut de ton code suffit.
Enjoy ^_^
K.
de ce que je vois tu veux afficher tous les directos qui se trouvent dans ta BDD. Mais pour cela dans ton while il faut stocker toutes les infos dans un tableau. Puis afficher les infos du tableau en consequence, avec un foreach par exemple.
- <?php
- while(false != ($ligne = mysql_fetch_array($reponse)))
- {
- $options[]/*Ici est le tableau options*/ .= ' <option value="'. $ligne['director'] .'">'. $ligne['director'] .'</option>' . "\n";
- }
- ?>
- <select name="director" id="director" onchange="MM_director('parent',this,0)">
- <?php
- echo '<option>- réalisateurs -</option>';
- //Et ici on exploite le tableau avec un foreach
- foreach($options as $directors){
- echo $directors ;
- }//Fin foreach
- ?>
- </select>
- ?>
Voila, je pense que ca devrait rouler comme ca. Verifie tout de meme le foreach si ca ne fonctionne pas. Et parfois sur certains serveurs tu dois declarer ta variable comme etant un tableau, un simple:
- <?php
- $options = array() ;
- ?>
au debut de ton code suffit.
Enjoy ^_^
K.
salut Keika et merci
ça ne marche pas
en fait, la page appelée par le menu
est le nom du director
et non pas, toutes les lignes de ma table
comportant ce nom
le problème est à ce niveau, je pense
il faut que "option value" appelle seulement
les lignes de ma table comportant le nom
du réalisateur, via une requete MySQL, je
pense
si tu vois ce que je veux dire...
merci
f
ça ne marche pas
en fait, la page appelée par le menu
est le nom du director
et non pas, toutes les lignes de ma table
comportant ce nom
le problème est à ce niveau, je pense
- // ligne 6
- $options[]/*Ici est le tableau options*/ .= ' <option value="'. $ligne['director'] .'">'. $ligne['director'] .'</option>' . "\n";
il faut que "option value" appelle seulement
les lignes de ma table comportant le nom
du réalisateur, via une requete MySQL, je
pense
si tu vois ce que je veux dire...
merci
f
Effectivement je ne comprends pas trop.
Je pense que ce que tu veux faire est un select sur le nom du director... pour ca il faut mettre:
<option value="" selected>...</option>
C'est le selected qui met en surbrillance le bon nom du dirlo, mais pour ca faut que tu mettes un petit if bien place. et je pense qu'il te faut tout de meme tous les noms des directeurs sinon ca ne sert a rien de rechercher tous les directors dans ta base.
Je pense que ce que tu veux faire est un select sur le nom du director... pour ca il faut mettre:
<option value="" selected>...</option>
C'est le selected qui met en surbrillance le bon nom du dirlo, mais pour ca faut que tu mettes un petit if bien place. et je pense qu'il te faut tout de meme tous les noms des directeurs sinon ca ne sert a rien de rechercher tous les directors dans ta base.
salut,
voici ma page :
http://www.webdeco.fr/page.php?item=menu
comme tu vois, si je clique sur bresson, par exemple, j'ai comme url demandée :
http://www.webdeco.fr/bresson, robert
alors que je voudrais, comme url appelée
une requete MySQL, (je pense) correspondant au nom du director demandé
merci
@+
f
voici ma page :
http://www.webdeco.fr/page.php?item=menu
comme tu vois, si je clique sur bresson, par exemple, j'ai comme url demandée :
http://www.webdeco.fr/bresson, robert
alors que je voudrais, comme url appelée
une requete MySQL, (je pense) correspondant au nom du director demandé
merci
@+
f
Ben tu récupères en GET le nom du mec et tu fais ta seconde requête en fonction non ?
Oui voila, suis LA GLOBULE,
Je n'avais pas compris ca effectivement. OU sinon tu fais un form qui envoit en POST et tu recuperes tes infos avec $_POST et tu l'utilises dans ta nouvelle requete SQL.
Je n'avais pas compris ca effectivement. OU sinon tu fais un form qui envoit en POST et tu recuperes tes infos avec $_POST et tu l'utilises dans ta nouvelle requete SQL.
ok
merci à vous, je vais tester çà
je vous tiens au jus
++
f
merci à vous, je vais tester çà
je vous tiens au jus
++
f
salut
merci à vous c'était bien çà
pas très sorcier, mais j'ai toujours un peu de mal avec les passages de variables
j'ai une dernière question !
mon menu déroulant, issu de la colonne
"director" de ma table, reprends toutes les entrées de cette colonne (normal)
mais, si j'ai un director cité plusieurs fois,
comment faire pour qu'il n'apparaisse
qu'une fois (éviter les doublons) ?
dans mon exemple, Tarkovski :
[lien]
http://www.webdeco.fr/page.php?item=menu
[/lien]
merci encore!
bonne journée
f
merci à vous c'était bien çà
pas très sorcier, mais j'ai toujours un peu de mal avec les passages de variables
j'ai une dernière question !
mon menu déroulant, issu de la colonne
"director" de ma table, reprends toutes les entrées de cette colonne (normal)
mais, si j'ai un director cité plusieurs fois,
comment faire pour qu'il n'apparaisse
qu'une fois (éviter les doublons) ?
dans mon exemple, Tarkovski :
[lien]
http://www.webdeco.fr/page.php?item=menu
[/lien]
merci encore!
bonne journée
f
oups !
désolé d'avoir posté pour rien!!
j'ai trouvé
il faut rajouter "distinct" à la requête MySQL
et dans la page traitement.php on récupère
la variable "director"
merci encore à vous
@+
f
désolé d'avoir posté pour rien!!
j'ai trouvé
il faut rajouter "distinct" à la requête MySQL
- <?
- mysql_connect("host", "base", "pass");
- mysql_select_db("base");
- $reponse = mysql_query("SELECT distinct director FROM films ORDER BY director ASC"); // Requête SQL
- $options = "";
- while(false != ($ligne = mysql_fetch_array($reponse)))
- {
- $options .= ' <option value="'. $ligne['director'] .'">'. $ligne['director'] .'</option>' . "\n";
- }
- ?>
- <form id="form1" name="form1" method="post" action="traitement.php">
- <label>
- <select name="director" id="select">
- <?php
- echo '<option>- réalisateurs -</option>';
- echo $options;
- ?>
- </select>
- </label>
- <label>
- <input type="submit" name="button" id="button" value="go" />
- </label>
- </form>
et dans la page traitement.php on récupère
la variable "director"
- $sql = "SELECT * FROM films WHERE director = '".$_POST['director']."'; ";
merci encore à vous
@+
f
hello
j'ai une toute dernière question, je voudrais pour chaque réalisateur, afficher (dans le menu déroulant) le nombre de films comportant son nom
rappel du code de ma page :
ma page en ligne :
[lien]
http://www.webdeco.fr/page.php?item=menu
[/lien]
comme vous pouvez le voir, j'ai réussi à
afficher dans le menu, le nombre total
de réalisateurs(23), avec la commande :
comment faire la même chose, mais pour chaque réal ??
si vous avez une idée, merci d'avance
@+
f
j'ai une toute dernière question, je voudrais pour chaque réalisateur, afficher (dans le menu déroulant) le nombre de films comportant son nom
rappel du code de ma page :
- <?
- mysql_connect("server", "bdd", "pass");
- mysql_select_db("bdd");
- $reponse = mysql_query("SELECT distinct director FROM films ORDER BY director ASC"); // Requête SQL
- $options = "";
- while(false != ($ligne = mysql_fetch_array($reponse)))
- {
- $options .= ' <option value="'. $ligne['director'] .'">'. $ligne['director'] .'</option> . "\n";
- }
- ?>
- <form id="form1" name="form1" method="post" action="page.php?item=menu">
- <label>
- <select name="director" id="select">
- <?php
- echo '<option>- réalisateurs - ('.$total.')</option>;
- echo $options;
- ?>
- </select>
- </label>
- <label>
- <input type="submit" name="button" id="button" value="go" />
- </label>
- </form>
ma page en ligne :
[lien]
http://www.webdeco.fr/page.php?item=menu
[/lien]
comme vous pouvez le voir, j'ai réussi à
afficher dans le menu, le nombre total
de réalisateurs(23), avec la commande :
- $select = 'SELECT COUNT(DISTINCT director) FROM films';
comment faire la même chose, mais pour chaque réal ??
si vous avez une idée, merci d'avance
@+
f
On ne le voit pas ton count dans ton code :/
- <?
- mysql_connect("host", "bdd", "pass");
- mysql_select_db("bdd");
- $reponse = mysql_query("SELECT distinct director FROM films ORDER BY director ASC"); // Requête SQL
- $options = "";
- while(false != ($ligne = mysql_fetch_array($reponse)))
- {
- $options .= ' <option value="'. $ligne['director'] .'">'. $ligne['director'] .'</option>' . "\n";
- }
- ?>
- <form id="form1" name="form1" method="post" action="page.php?item=menu">
- <label>
- <select name="director" id="select">
- <?php
- require "count_rea.php";
- echo '<option>- réalisateurs - ('.$total.')</option>';
- echo $options;
- ?>
- </select>
- </label>
- <label>
- <input type="submit" name="button" id="button" value="go" />
- </label>
- </form>
et la page "count_rea.php" :
- <?php
- $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
- mysql_select_db($db) or die ('Erreur :'.mysql_error());
- $select = 'SELECT COUNT(DISTINCT director) FROM films';
- $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
- $row = mysql_fetch_row($result);
- $total = $row[0];
- ?>
donc, comment afficher dans le menu déroulant, le nombre de films par réal
j'essaie un peu tout, mais je bloque
merci
f
Accès rapide :
Remonter 

