Creation d'un menu ouvrant a partir d'une base mysql

Soyez le premier à donner votre avis sur cette source.

Vue 16 562 fois - Téléchargée 1 757 fois

Description

Voici un code en PHP avec un script pour creer un menu ouvrant depuis une base MYSQL sur 3 niveaux d'ouvertures
nous partons d'une base avec trois info 1- Famille 2- type 3- categ

n'oublier pas de modifier vos acces a votre base MYSQL
ainsi que le lien de retour de page ecrite ici "page.php?choix="

1er partie le script pour les balise HEAD
//////////////////////////////////////////
2eme partie recuperation du fichier
/////////////////////////////////////////
3eme partie le decodage et l'affichage

Source / Exemple :


<?php
mysql_connect("sql.votresite", "votreacces", "votrecode");
mysql_select_db("votretable"); $bouclcateg =0;$afamille=0;$atype=0;$listing=array();$boucltype =0;
$affamille = array();$aftype =array();
// creation du listing du menu
// notre table mysql contient un colonne Famille Une colonne Type et une colonne categorie
$reponse= mysql_query("SELECT * FROM catalogue ORDER BY type");
	while ($affichage = mysql_fetch_array($reponse)) 
		{// creation liste des familles
		if ($affichage['Famille'] != "") 
			{ 
			$a = $afamille +1;$v = 0;
			for ($boucle=1; $boucle < $a; $boucle++)
				{
				if ($affichage['Famille'] == $affamille[$boucle])
					{$v = 1;} // la famille existe deja
				}
			if ($v == 0) // nouvelle famille
				{ 
				$affamille[$afamille] =$affichage['Famille'];
				$afamille++;
				}
			
			}
		// creation de la liste type
		if ($affichage['type'] != "") 
			{
			
			$a = $atype +1;$v = 0;
			for ($boucle=1; $boucle < $a; $boucle++)
				{// le type existe
				if ($affichage['type'] == $aftype[$boucle]){$v = 1;} 
				}
			// nouveau type
			if ($v == 0) { $aftype[$atype] =$affichage['type'];$atype++;} 
			// affectation du type a la ligne
			$a = $atype +1;
			for ($boucle=1; $boucle < $a; $boucle++)
				{
				if ($affichage['type'] == $aftype[$boucle])
				{$retype = $boucle;} 
				}
			}
		if ($affichage['listing'] != "")
			{$bouclcateg++;
			// affection de la famille a la ligne
			$a = $afamille +1;$refamille =0;
			for ($boucle=1; $boucle < $a; $boucle++) 
				{
				if ($affichage['Famille'] == $affamille[$boucle])
					{$refamille = $boucle;}
				}
			// affectation du type a la ligne
			$a = $atype +1;$retype =0;
			for ($boucle=1; $boucle < $a; $boucle++)
				{
				if ($affichage['type'] == $aftype[$boucle])
				{$retype = $boucle;} 
				}
			// cretion du listing produit
			$listing[$bouclcateg]='@'.$refamille.'@'.$retype.'@'.$affichage['listing'];
			$listingtotal[$bouclcateg]=$affichage['listing'];
			$typetotal[$bouclcateg] = $affichage['type'];
			}	
			
		}
mysql_close();
?>
<html> 

<head>
<title>Menu deroulant</title>
<script type="text/javascript">

document.write('<style type="text/css">');    
document.write('.show,.show2 {display:none}<');
document.write('/s'+'tyle>'); 

function ShowMore2(lien,id) {
var tag = 'a';
var clas = 'more2';
ChangeClass(tag,clas);
lien.className = 'more2on';

var tag = 'span';
var clas = 'show2'; 
ChangeClass(tag,clas);
var show = document.getElementById(id);
show.className = 'show2on';
}

function ShowMore(lien,id) {
var tag = 'a';
var clas = 'more';
ChangeClass(tag,clas);
lien.className = 'moreon';

var tag = 'span';
var clas = 'show'; 
ChangeClass(tag,clas);
var show = document.getElementById(id);
show.className = 'showon';
}

function ChangeClass(tag,clas) {
var link = document.getElementsByTagName(tag);
for (var i = 0; i < link.length; i++) {
  if (link[i].className == clas+'on') link[i].className  = clas;
  }
}
</script>
</head>

<body>
<div id="articles" class="pageon">
<?php  $afamille++; $atype++; $bouclcateg++;$menu=array();$menutype = array ();$existe=array();$existe2 ="";
//   craetion du listing des d'affichages
for ($boucle=1; $boucle < $bouclcateg; $boucle++) 
	{
	$decoupef = explode('@',$listing[$boucle]);$b =1;$e = 2;$f=1;
	for ($boucle1=1; $boucle1 < $afamille; $boucle1++)
				{//  a quelle famille appartient l'article
				if ($decoupef[$b] == $boucle1) 
					{
					for ($boucle2=1; $boucle2 < $atype; $boucle2++)
						{$g = 0; // a quelle type 
						if ($decoupef[$e] == $boucle2 AND $typetotal[$boucle] != "") 
							{
								$classe = $boucle1.$boucle2 ;
								if (isset ($menu[$classe]))
									{// enregistrement des type et categorie
									$menu[$classe] = $menu[$classe].'<li><a href="page.php?choix='.$listingtotal[$boucle].'" target="_top"><font color="#333366">'.$listingtotal[$boucle].'</font></a>';
									}
								else
									{
									$menu[$classe] = $menu[$classe].'<br><a href="#" onClick="ShowMore(this,\'description'.$classe.'\')" class="more"><font color="#333399">&nbsp;&nbsp;-'.$typetotal[$boucle].'</font></a><span class="show" id="description'.$classe.'"><ul><li><a href="page.php?choix='.$listingtotal[$boucle].'" target="_top"><font color="#333366">'.$listingtotal[$boucle].'</font></a>';
									}
								$g=1;
								$existe2 = $existe2.' '.$listingtotal[$boucle];
								
							}
						
							
						} // enregistrement des categorie sans type
					if ($g == 0 )
						{$verif = $listingtotal[$boucle];
						ereg($verif,$existe2,$out); 
						if ($out == "")
							{
							$menu[$boucle1] =$menu[$boucle1].'<li><a href="page.php?choix='.$listingtotal[$boucle].'" target="_top"><font color="#333366">'.$listingtotal[$boucle].'</font></a>';
							}		
						}
					}
				}
	
	}
for ($boucle1=1; $boucle1 < $afamille; $boucle1++)
	{//  affichage des familles
		echo '<br><b><a href="#" onClick="ShowMore2(this,\'detail'.$boucle1.'\')" class="more2"><font color="#CC0000">'.$affamille[$boucle1].'</font></a></b><span class="show2" id="detail'.$boucle1.'">';
		for ($boucle2=1; $boucle2 < $atype; $boucle2++)
						{
						$classe = $boucle1.$boucle2;
						if (isset ($menu[$classe]))
							{
							echo ' '.$menu[$classe].'</ul></span> ';
							}
						}
		echo $menu[$boucle1].'</span> ';
		
	}
?>
</div>
</body>
</html>

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
samedi 9 mai 2009
Statut
Membre
Dernière intervention
2 novembre 2008

script incomplet on a pas la page style ?
Messages postés
1
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
19 avril 2007

SALU Je suis développeur votre code m'nterresse baucoup j'aimerai avoir la base de donnée et le code complet SVP j'ai a la recherche d'une code qui fai la méme chose mais je n'arrive j'ai besoin de ton aide SVP la base et le code complet SVP
Messages postés
265
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
27 octobre 2014

humm je pense qu'il y'a beaucoup plus rapide pour ce type de manip...avec simplement 1 parametres de plus dans la table qui permettrai de différencier les niveaux ensuite un bon petit if et le tour est joué sachant que l'on peut passer des values au liste .. différentes de celle afficher.. bref..
Messages postés
3
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
12 février 2007

Voici un lien ou je fais une demo de fonctionnement de ce pas de programme
http://www.amions-basket.com/page.php
Messages postés
27
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
13 mars 2008

Bonjour,

chez moi j'ai droit à la page blanche malgré une bdd. Pourrais t'on avoir un exemple de structure de bdd pour tester ?

Merci
Afficher les 12 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.