Menu déroulant PHP/MYSQL

Fermé
Init.PHP - 13 avril 2008 à 10:01
 djoyanna - 8 sept. 2008 à 12:05
Bonjour,

Le menu déroulant fait avec ce code ne me permet pas d'avoir la liste des rubriques dans la table "documentsged".

En effet, je n'ai qu'une ligne qui apparaît.

Je pense que je n'utilise pas correctement les fonctions while et for pour avoir la liste complète.

Merci de m'aider à résoudre ce problème qui me permettrait d'avancer dans mon projet.

Dans l'attente....



<?php
/*Programme: Recherchedocumentrubrique.php
*Description: Affiche documents en fonction de la rubrique
*
*/
?>
<html>
<head><title>Choix rubriques</title></head>
<body>
<?php
include("misc.inc");
$connection=mysql_connect($host,$user,$password)
or die ("Connexion au serveur impossible");
$db=mysql_select_db($database,$connection)
or die ("Sélection de la base de données impossible");
$result=mysql_query("select coderubrique FROM documentsged" )
or die ("Exécution de la requête impossible");


$coderubrique = (isset($_POST['coderubrique']) ? $_POST['coderubrique'] : '');

while ($tab= mysql_fetch_row($result))
{
$tb_coderubrique=$tab;
}

$listing = '<center><form name="marque_form" action="' . $_SERVER['PHP_SELF'] . '" method="post">';
$listing .= '<select name="coderubrique" OnChange="submit();">';
$listing .= '<option value="">Choisir une marque</option>';
for($i=0;$i<count($tb_coderubrique);$i++) {
$listing .= '<option value="' . $i . '"' . (strlen($coderubrique) > 0 && $coderubrique == $i ? ' selected' : '') . '>' . $tb_coderubrique[$i] . '</option>';
}
$listing .= '</select>';



$listing .= '<NOSCRIPT><input type="submit" name="submit" value="Suivant"></NOSCRIPT>';
$listing .= '</form></center>';



if (strlen($coderubrique) > 0 ) {
echo '<center>Vous avez choisi un véhicule de Marque : ' . $tb_coderubrique[$coderubrique] . '<br>';

echo '<a href="' . $_SERVER['PHP_SELF'] . '">Retour</a></center>';
}
else {
echo $listing;
}

?>
A voir également:

4 réponses

Bonjour voici mon problème :
je cherche a créer un menu dynamique avec menu/sous menu tiré d'une Base de donnée avec les table categorie et sous_categorie .
La liste des menu apparai comme ceci :
menu 1
menu 2
menu 3

Je voudrai que lorsque je clik sur l'une d'entre elle s'affiche les sous menu qui lui corresponde tout en gardant les autre menu non cliké , comme ceci :
menu 1
menu 2
sous menu 1
sous menu 2
menu 3

Mon problème est que j'arrive a afficher la liste des sous et affiché les sous menu correspondant au menu cliké mai les sous menu s'affiche en dessous de tout les menu , comme le montre cet exemple :
si je clik sur le menu 2 voici ce q'il se passe :
menu 1
sous menu 1 (du menu 2)
sous menu 2 (du menu 2)
menu 2
sous menu 1 (du menu 2)
sous menu 2 (du menu 2)
menu 3
sous menu 1 (du menu 2)
sous menu 2 (du menu 2)

Alors que j'aimerai obtenir ce résultat :
menu 1
menu 2
sous menu 1 (du menu 2)
sous menu 2 (du menu 2)
menu 3

Jespere que j'ai été clair

voici mon code
<?php
/*TEST MENU SUR TABLE CAT*/
$lResult1 = $lSite->CountSelectFrontCat();//SELECT Count( id_cat) AS count_cat FROM categorie where id_site='52' and publier_cat='1'
$lResult2 = $lSite->SelectFrontCat();//SELECT * FROM categorie where id_site='52' and publier_cat='1' order by ordre_cat

if ($row1=$lResult1)
{
$count_cat=$row1[0][0];
}
if ($row2=$lResult2)
{
$i=0;
for ( $y = 1; $y <= $count_cat; $y++)
{$id_cat=$row2[$i][0];
echo '<a href="menu_dynamique_effet_bouton.php?id_cat='.$row2[$i][0].'">';
echo $row2[$i][1];
echo '</a><br>';

if ($_GET['id_cat'])
{
$id_cat=$_GET['id_cat'];
$lResult3 = $lSite->CountSelectFrontSsCat($id_cat);//SELECT Count( id_cat) AS count_cat FROM sous_categorie where id_site='52' and publier_ss_cat='1' and id_cat='".$id_cat."'
$lResult4 = $lSite->SelectFrontSsCat($id_cat); //SELECT * FROM sous_categorie where id_site='52' and publier_ss_cat='1' and id_cat='".$id_cat."' order by ordre_ss_cat
if ($row3=$lResult3)
{
$count_ss_cat=$row3[0][0];
}
if ($row4=$lResult4)
{
$j=0;

for ( $z = 1; $z <= $count_ss_cat; $z++)
{
echo $row4[$j][1];
echo '<br>';
$j++;
}
}
}
$i++;
}


}

?>
merci pour votre aide
0
si vous pouvez maider... merci encore
0
zz10 Messages postés 2 Date d'inscription vendredi 11 avril 2008 Statut Membre Dernière intervention 13 avril 2008
13 avril 2008 à 10:51
salut,

essaye ca :

$i=0;
while ($tab= mysql_fetch_row($result))
{
$tb_coderubrique[$i]=$tab;
$i++;
}
-1
Bonjour,

merci d'essayer de me répondre mais maintenant j'ai dans la liste "Array" (sur 3 lignes) et non pas la liste des rubriques (SOCIAL, INFORMATIQUE...).

Il faudrait maintenant que le nom des rubriques apparaissent à la place de "Array".

Merci encore pour votre aide

A bientôt1 message(s) posté(s) depuis le dimanche 13 avril 2008
0
INIT.PHP Messages postés 1 Date d'inscription dimanche 13 avril 2008 Statut Membre Dernière intervention 13 avril 2008
13 avril 2008 à 19:50
Bonjour,

merci d'essayer de me répondre mais maintenant j'ai dans la liste "Array" (sur 3 lignes) et non pas la liste des rubriques (SOCIAL, INFORMATIQUE...).

Il faudrait maintenant que le nom des rubriques apparaissent à la place de "Array".

Merci encore pour votre aide

A bientôt
-1