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

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

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.