Vous n'êtes pas identifié.

Annonce

#1 menu déroulant dynamique du 29-12-2011 21:33:16

fleur69
c00lnaute occasionnel
Date d'inscription: 24-09-2011
Messages: 59
Site web

menu déroulant dynamique

mon objectif faire un menu déoulant horizontal dynamique.

exemple:

catégorie 1
|
|
|
v
article 1 de la catégorie 1
article 2 de la catégorie 1
article 3 de la catégorie 1
....



Mes soucis:

le liens les ateliers gourmands qui n'est pas alignés avec les autres
l'erreur qui s'affiche:

Code:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/mimila/www/base_beryl/menu_deroulant.php on line 17

menu_deroulant.php

Code:

<div id="navigation">

<li><a id="menu" title="Accueil" href="http://<?php echo $_SERVER['HTTP_HOST'];?>/base_beryl/index.php">
Accueil</a></li>
<li><a id="menu" title="Livre d'or" href="http://<?php echo $_SERVER['HTTP_HOST'];?>/base_beryl/livredor.php">
Livre d'or</a></li>
<ul>
    <li onmouseover="montre('smenu5',true);" onmouseout="montre('smenu5',false);">
<?php
//On est théoriquement déjà connecté à la BD
//On selectionne les données
 // on se connecte à la base de données
    include('connexion_bd.php');
    mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
    mysql_select_db("$nom_de_la_base") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es du fichier connexion_bd.php.');
$cat = mysql_query("SELECT id,nom_categorie FROM CATEGORIES ORDER BY id ASC");
    while($cat = mysql_fetch_array($cat))// objectif afficher la liste des catégories 
    {

      echo '<a id="menu" title="'.$cat['nom_categorie'].'">'.$cat['nom_categorie'].'</a>';
 }
    ?>

    <ul id="smenu5">
    <li onmouseover="montre('smenu51',true);" onmouseout="montre('smenu51',false);"><a href="#">
    <?php
//On est théoriquement déjà connecté à la BD
//On selectionne les données
 // on se connecte à la base de données
    include('connexion_bd.php');
    mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
    mysql_select_db("$nom_de_la_base") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es du fichier connexion_bd.php.');
    $result = mysql_query("SELECT * FROM CONTENU WHERE id_categorie=1");
    while($affiche = mysql_fetch_array($result)) // afficher les articles qui correspondent à la catégorie 1
 {
 echo '<li><a id="sousmenu" title="'.$affiche['titre'].'" href="page.php?id='.$affiche['id'].'">'.$affiche['titre'].'</a></li>';
 
 }

 ?>
 </li>
</ul>

</div>

est-ce que l'on peut m'aider pour l'erreur SQL ?

Dernière modification par fleur69 (29-12-2011 22:26:14)


petite débutante obstinée...

Hors ligne

 

29-12-2011 21:33:16

Mister $$$
Créer un site


#2 Re menu déroulant dynamique du 30-12-2011 12:27:13

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: menu déroulant dynamique

Salut fleur69,

A vue de nez, tu n'as pas qu'une erreur sql, tu as aussi des erreurs d'imbrications de tes listes...
Schématiquement, ça devrait te donner un truc comme ça :

Code:

<div id="menu">
<ul>
<!--Première catégorie-->
  <li><a href="#">Catégorie 1</a>
<!--Article première catégorie-->
     <ul>
      <li><a href="#">Page 1</a></li>
      <li><a href="#">Page 2</a></li>
     </ul>
<!--Fin article première catégorie-->
<!--Fin première catégorie-->     
  </li> 
  <li><a href="#">Catégorie 2</a>
    <ul>
      <li><a href="#">Page 1</a></li>
      <li><a href="#">Page 2</a></li>
     </ul>
  </li>
  <li><a href="#">Catégorie 3</a>
    <ul>
      <li><a href="#">Page 1</a></li>
      <li><a href="#">Page 2</a></li>
     </ul>
  </li>  
</ul>
</div>

Côté SQL :

Code:

SELECTION DES CATEGORIES
//boucle while donc récupération des id de chaque catégorie
{
//Affichage des catégories sans fermer la boucle while
SELECTION DES ARTICLES
//re boucle while pour sélectionner les articles en fonction de la catégorie
//select article from ma table where categorie = id de la categorie
{
//Affichage des articles
}
//On ferme la première boucle while
}

Pour ton erreur SQL, tu t'est planté dans l'appel des variables :

$categorie = mysql_query("SELECT id,nom_categorie FROM CATEGORIES ORDER BY id ASC");
    while($cat = mysql_fetch_array($categorie))// objectif afficher la liste des catégories
    {
      echo '<a id="menu" title="'.$cat['nom_categorie'].'">'.$cat['nom_categorie'].'</a>';
    }

Si tu as besoin de plus d'aide, il faudra m'indiquer qu'elle est le code + style CSS que tu utilises pour créer ton menu déroulant.

Hors ligne

 

#3 Re menu déroulant dynamique du 02-01-2012 11:07:48

fleur69
c00lnaute occasionnel
Date d'inscription: 24-09-2011
Messages: 59
Site web

Re: menu déroulant dynamique

désolé cette fin de semaine je n'ai pas trop eu le temps de m'occuper de ce menu, je vais essayer de m'en occuper dans la journée mais en effet j'aurais certainement besoin d'aide.

Dernière modification par fleur69 (02-01-2012 11:09:20)


petite débutante obstinée...

Hors ligne

 

#4 Re menu déroulant dynamique du 02-01-2012 12:13:41

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: menu déroulant dynamique

Pas de soucis, d'autant plus que je me le suis déjà fabriqué en full CSS icon_mrgreen ... et bonne année en passant.

Hors ligne

 

#5 Re menu déroulant dynamique du 02-01-2012 15:49:20

fleur69
c00lnaute occasionnel
Date d'inscription: 24-09-2011
Messages: 59
Site web

Re: menu déroulant dynamique

re-coucou,

j'aimerais savoir ce que tu penses de mon code. est-ce que je suis encore à coté de la plaque?

Code:

<div id="navigation">

<ul>
<li><a id="navigation" title="Accueil" href="http://<?php echo $_SERVER['HTTP_HOST'];?>/base_beryl/index.php">
Accueil</a></li>
<li><a id="navigation" title="Livre d'or" href="http://<?php echo $_SERVER['HTTP_HOST'];?>/base_beryl/livredor.php">
Livre d'or</a></li>


<?php

//On selectionne les données
 // on se connecte à la base de données
    include('connexion_bd.php');
    mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
    mysql_select_db("$nom_de_la_base") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es du fichier connexion_bd.php.');
$categorie = mysql_query("SELECT id,nom_categorie FROM CATEGORIES ORDER BY id ASC");
    while($cat = mysql_fetch_array($categorie))// objectif afficher la liste des catégories 
    {
 echo '<a id="navigation" title="'.$cat['nom_categorie'].'">'.$cat['nom_categorie'].'</a>';
  echo '<ul>';
    $result = mysql_query("SELECT * FROM CONTENU WHERE id_categorie");
    while($affiche = mysql_fetch_array($result)) // afficher les articles qui correspondent à la catégorie 
    {
     echo '<li><a id="navigation" title="'.$affiche['titre'].'" href="page.php?id='.$affiche['id'].'">'.$affiche['titre'].'</a></li>';
     }
     }
     ?>
     </ul>

PS: je n'ai pas encore fais le CSS

PS²: ah voui Bonne année!!!

Dernière modification par fleur69 (02-01-2012 15:50:29)


petite débutante obstinée...

Hors ligne

 

#6 Re menu déroulant dynamique du 02-01-2012 17:45:59

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: menu déroulant dynamique

C'est presque ça 014 ...tu as une erreur dans la seconde requête sql

Code:

 $result = mysql_query("SELECT * FROM CONTENU WHERE id_categorie");

Dans celle-ci, tu demandes à tous sortir de la bd par le biais de l’astérisque (*) alors que tu as besoin de l'id et du titre seulement

Code:

SELECT id, titre FROM CONTENU

La, tu gagne quelques milliseconde sur ta requête que tu gagnes en rapidité d'affichage.
Ensuite dans ta requête tu as :

WHERE id_categorie

...qui veut dire en gros : "dont le champ id_categorie"...ce qui signifie qu'il te manque un bout de requête puisque tu cherches à sortir les données de la table CONTENU en rapport avec les données de la table CATEGORIES. Ta requête doit dire en gros :"dont le champ id_categorie est égal au champ id de la table CATEGORIES". Je te laisse chercher un peut ^^.

Ensuite il y a soucis au niveau de tes listes car si ton code fonctionnait, il te sortirait un truc du genre :
<ul>
<li>**</li>
Catégorie 1
<ul>
<li>article</li>
<ul>
<li>article</li>
Catégorie 2
<ul>
<li>article</li>
</ul>

Alors qu'il faut :

<ul>
  <li>Catégorie 1
     <ul>
      <li>Page 1</li>
      <li>Page 2</li>
     </ul>
  </li>
</ul>

Sert toi du tutoriel qui est sur ce site Menu horizontal déroulant en CSS pour réaliser la structure de ton menu (c'est ce que j'ai fais:)).

Hors ligne

 

#7 Re menu déroulant dynamique du 02-01-2012 17:58:16

fleur69
c00lnaute occasionnel
Date d'inscription: 24-09-2011
Messages: 59
Site web

Re: menu déroulant dynamique

http://www.blagoticone.com/smiley/expression/vil-surpris.gif bon ben je vais m'y remettre.

Dernière modification par fleur69 (02-01-2012 17:58:32)


petite débutante obstinée...

Hors ligne

 

#8 Re menu déroulant dynamique du 02-01-2012 19:13:53

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: menu déroulant dynamique

T'est vraiment pas loin du résultat que tu cherches à avoir, c'est pour ça que je te laisse chercher un peut. Si vraiment tu galères trop, je te donnerais le code au complet avec comme base le CSS du lien que j'ai posté dans mon précédent poste.

Hors ligne

 

#9 Re menu déroulant dynamique du 03-01-2012 13:48:34

fleur69
c00lnaute occasionnel
Date d'inscription: 24-09-2011
Messages: 59
Site web

Re: menu déroulant dynamique

Dans celle-ci, tu demandes à tous sortir de la bd par le biais de l’astérisque (*) alors que tu as besoin de l'id et du titre seulement


Code:

SELECT id, titre FROM CONTENU

La, tu gagne quelques milliseconde sur ta requête que tu gagnes en rapidité d'affichage.
Ensuite dans ta requête tu as :

Code:

    WHERE id_categorie

...qui veut dire en gros : "dont le champ id_categorie"...ce qui signifie qu'il te manque un bout de requête puisque tu cherches à sortir les données de la table CONTENU en rapport avec les données de la table CATEGORIES. Ta requête doit dire en gros :"dont le champ id_categorie est égal au champ id de la table CATEGORIES". Je te laisse chercher un peut ^^.

est-ce que je peux faire ça à la place ?

Code:

    $result = mysql_query("SELECT id, titre FROM CONTENU WHERE id_categorie = '$categorie'");

petite débutante obstinée...

Hors ligne

 

#10 Re menu déroulant dynamique du 03-01-2012 14:24:32

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: menu déroulant dynamique

Non car "$categorie" est un tableau qui contient tout ce que tu demandes...toi ce qu'il te faut c'est un seul élément de ce tableau et en l’occurrence l'identifiant de la catégorie puisque c'est par l'intermédiaire de celle-ci que tu peut trouver les données associés au 2 tables :

Code:

SELECT id, titre FROM CONTENU WHERE id_categorie='".$cat['id']."'

J' ai l'impression que tu n'as pas très bien pigé le truc...

Première boucle while sert à récupérer l'id + titre de chaque catégorie.
$cat['id'] correspond à un id à chaque tour de la boucle.
La seconde boucle while sert à récupérer id + titre de chaque article en rapport avec l'id de la table CONTENU sortie à chaque tour de la boucle.

Premier tour de boucle dans la table CATEGORIES :
champ id = variable $cat['id'] = 1
nom_categorie = variable $cat['nom_categorie'] = Titre de la catégorie

Premier tour de boucle dans la table CONTENU:
Dans la table CONTENU il y a un champ id_categorie qui correspond au champ id de la table CATEGORIES. Pour récupérer les bonnes entrées, il faut comparer celle-ci.
champ id_categorie = variable $affiche_page['id'] =1 au premier tour de boucle

Ps: si mes explications te saoule, tu me le dit 014 !

Hors ligne

 

#11 Re menu déroulant dynamique du 03-01-2012 16:55:01

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: menu déroulant dynamique

Alors...toujours pas de résultats??

Hors ligne

 

#12 Re menu déroulant dynamique du 03-01-2012 17:03:08

fleur69
c00lnaute occasionnel
Date d'inscription: 24-09-2011
Messages: 59
Site web

Re: menu déroulant dynamique

pas encore eu le temps de m'y pencher (mon fils squatte mes genoux et don pas évident 014) mais je continu a me creuser la tête pour que <li> soit répété plusieurs fois et jusqu'à ce qu'il n'y est plus de donné dans id de la table CONTENU


petite débutante obstinée...

Hors ligne

 

#13 Re menu déroulant dynamique du 03-01-2012 18:34:44

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: menu déroulant dynamique

Bon, je donne la solution. A toi de voir si tu continues à te creuser les méninges pour trouver seule ou pas...

Dans une page teste.php, copie/colle le code ci-dessous :

Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">

<head>
<title>Menu horizontal déroulant</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<style type="text/CSS">
#menu {
height:50px;
}
#menu ul {
margin:0;
padding:0;
list-style-type:none;
text-align:center;
}
#menu li {
float:left;
margin:auto;
padding:0;
background-color:black;
}
#menu li a {
display:block;
width:150px;
color:white;
text-decoration:none;
padding:5px;
border-left:1px solid red;
}
#menu li a:hover {
color:#FFD700;
background-color:green;
}
#menu ul li ul {
display:none;
}
#menu ul li:hover ul {
display:block;
}
#menu li:hover ul li {
float:none;
}
</style>
<!--[if !IE]> <-->
<style type="text/CSS">
#menu li ul {
position:absolute;
}
</style>
<!--> <![endif]-->
<!--[if IE 8]>
<style type="text/CSS">
#menu li ul {
position:absolute;
}
</style>
<![endif]-->
<meta name="description" content="Exemple de menu horizontal déroulant accessible créé grâce aux CSS" />
</head>

<body>

<div id="menu">
<ul>
<?php
// on se connecte à la base de données
include('connexion_bd.php');
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es du fichier connexion_bd.php.');

//On va chercher le nom et l'id de la catégorie
$nom_categorie = mysql_query("SELECT id, nom_categorie FROM CATEGORIES ORDER BY id ASC");
while($cat = mysql_fetch_array($nom_categorie))
{
    echo '<li><a title="'.$cat['nom_categorie'].'" href="categorie.php?id='.$cat['id'].'">'.$cat['nom_categorie'].'</a><ul>';
    //On va chercher le titre et l'id des articles qui correspondent à la catégorie
    $page = mysql_query("SELECT id, titre FROM CONTENU WHERE id_categorie='".$cat['id']."' ORDER BY id ASC");    
    while($affiche_page = mysql_fetch_array($page))
    {
        echo '<li><a title="'.$affiche_page['titre'].'" href="page.php?id='.$affiche_page['id'].'">'.$affiche_page['titre'].'</a></li>';
    }
    echo '</ul></li>';
    //On ferme la première boucle while
}
?>
</ul>
</div>

</body>
</html>

Un exemple en ligne ici : menu déroulant CSS + PHP

Hors ligne

 

#14 Re menu déroulant dynamique du 05-01-2012 18:55:51

fleur69
c00lnaute occasionnel
Date d'inscription: 24-09-2011
Messages: 59
Site web

Re: menu déroulant dynamique

merci mais je voulais le faire seule :( mais c'est très gentil.
fini les vacances pour moi et donc j'ai moins de temps a  consacrer.
mais je vais essayer de me garder un moment dans le week end pour voir si je comprend tout.!!
un grand merci!!


petite débutante obstinée...

Hors ligne

 

#15 Re menu déroulant dynamique du 05-01-2012 19:01:10

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: menu déroulant dynamique

Je m'auto cite :

A toi de voir si tu continues à te creuser les méninges pour trouver seule ou pas...

Je t'est mis la solution mais tu n'étais pas obligé de la regarder 014

Hors ligne

 

#16 Re menu déroulant dynamique du 05-01-2012 19:02:53

fleur69
c00lnaute occasionnel
Date d'inscription: 24-09-2011
Messages: 59
Site web

Re: menu déroulant dynamique

je l'ai copier coller mais je ne l'ai pas encore regardé content (130)


petite débutante obstinée...

Hors ligne

 

#17 Re menu déroulant dynamique du 21-01-2012 16:34:47

fleur69
c00lnaute occasionnel
Date d'inscription: 24-09-2011
Messages: 59
Site web

Re: menu déroulant dynamique

merci beaucoup je n'étais pas arrivé tout a fait la même chose ( pas loin mais pas ça) en tout cas merci pour ton aide si précieuse!!


petite débutante obstinée...

Hors ligne

 

Propulsé par PunBB
© Copyright 2007
Forum créer un site

Partenaires de « créer un site internet »