begin process at 2012 05 27 19:42:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > CREATION D'UN MENU OUVRANT A PARTIR D'UNE BASE MYSQL

CREATION D'UN MENU OUVRANT A PARTIR D'UNE BASE MYSQL


 Information sur la source

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Classé sous :menu, ouvrant, php, mysql, script Niveau :Débutant Date de création :01/02/2007 Date de mise à jour :08/02/2007 19:46:48 Vu / téléchargé :14 785 / 1 574

Auteur : eas

Ecrire un message privé
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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

  • <?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>
<?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>


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

02 février 2007 16:22:51 :
mise a dispo d'un fichier zip au format php pour une lecture plus simple
08 février 2007 19:46:49 :
modifiacation du code a l'affichage le fichier ZIP : j'ai mit un format pour une page php directement en copie

 Sources de la même categorie

AFFICHÉ SUR UN TABLEAU AVEC PAGINATION ET BASE DE DONNÉES par stormxp
Source avec Zip Source avec une capture GENERATEUR D'ONGLET DE NAVIGATION PHP par pos123
FORMATER UN LIEN YOUTUBE, DAILYMOTION OU VIMEO POUR L'UTILIS... par kgb93
Source avec Zip Source avec une capture PAGINATION + FICHIER CSS par profdi
Source avec Zip Source avec une capture SYSTEME D'AUTHENTIFICATION PHP AVEC PROTÉCTION KEYLOGGER par mtrix000

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture EL COYOTOS LIVRE D'OR PHP 5 par elcoyotos
Source avec Zip Source avec une capture PAGINATION + FICHIER CSS par profdi
Source avec Zip CLASS MYSQL 5/PHP5 AVEC GESTION DES EXCEPTION ET DES REQUÊTE... par devil_may_cry
Source avec Zip Source avec une capture PAGINATION JAVASCRIPT PHP MYSQL par cod57
Source avec Zip Source avec une capture GESTION DE SCOLARITÉ [PHP] ET [MYSQL] par ayoubshadow

Commentaires et avis

Commentaire de stu76 le 02/02/2007 14:20:49

Salut,

Ton code à l'air sympa mais un zip ou un rar serait pas mal. Perso, je préfaire regarder ce type de code avec notepad++.

Merci ++

Commentaire de eas le 02/02/2007 14:48:40

je l'ai effectivement travaillé avec notepad++ , je vais le remettre en forme comme si il etait dans un page php et vous mettre en dispo en fichier zip

Commentaire de noya_m le 02/02/2007 17:15:05

Bonjour,
et dans le zip serait-il possible de mettre la base de donnée (je suis debutant en php et sans la base je ne peux rien faire )
merci

Commentaire de stu76 le 03/02/2007 09:20:43

Salut,

Merci pour le zip, je look et te dit quoi.

++


Stu76

Commentaire de TheSin le 03/02/2007 17:41:40

tu pourrais corriger l'exemple stp ?
mysql_select_db("votretable");  NON
mysql_select_db("votre_base_de_donees"); OUI

et ton code est incopiable, si je copie, je vois le code php prévu pour mysql ....

Commentaire de oXid_FoX le 08/02/2007 16:38:58

effectivement, vers la ligne 39-40, il manque une ouverture de php "<?php"
et donc soit de la fermer en 108 "?>", soit de supprimer l'ouverture en 109.
(observations d'après le code affiché, et non du zip)

Commentaire de eas le 08/02/2007 19:48:52

je viens de modifier le fichier a l'affichage il est maintenant identique a celui du fichier ZIP pour une page en PHP

Commentaire de g_barthe le 11/02/2007 14:16:13

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

Commentaire de eas le 12/02/2007 12:09:52

Voici un lien ou je fais une demo de fonctionnement de ce pas de programme
http://www.amions-basket.com/page.php

Commentaire de pouda le 24/03/2007 10:19:47

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..

Commentaire de dioufinfo le 19/04/2007 17:22:56

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

Commentaire de philou4212 le 02/11/2008 20:29:00

script incomplet on a pas la page style ?

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

espace membre php/mysql [ par kingramizy ] Bonjour, Voilà, le débute dans le php et MySQl et je suis à la recherche pour mon nouveau site d'un script pour créer un espace membre et une adminis script airwick_menu [ par marin123 ] Bonjour,j'utilise le script airwick_menu pour mon site. Il fonctionne tres bien sur free.fr mais quand je veux aller sur l'hébergeur www.lsdp.net il m semaphore [ par veneur59 ] Existe-t-il un moyen sur utilisant php et éventellementMySql de vérouiller une ressource quelconque (tablesMySQL, fichier, opération php de mise à jou Pconnect ou Connect?? [ par nlh ] Bonjour,alors voila, j'ai un probl&#232;me qui m'embete pas mal.... j'ai une interface flash qui execute un script php&nbsp;&#224; plusieur reprise, p Paramètre d'entrée dans un script PHP [ par zeldoi5 ] Bonjour tout le monde, je ne sais pas si le titre est suffisemment &#233;vocateur, mais je voudrais passer le r&#233;sultat de requ&#234;tes SQL (sur MySQL - Champ text avec php [ par abarthes ] Bonjours &#224; tous. Mon site est g&#233;r&#233; par un menu dynamique dont le contenu est dans une base. Quand on clis sur un item du menu, cela ren Pb avec script php avec manip sur base mysql [ par saccomabi ] &nbsp;Bonjour,j'utilise le dernier Wamp tout fonctionne phphmyadmin et autres. Lorsque je veux &#233;crire un script php avec une connection ou autre factorisation de script php [ par salim81 ] bonjour! j'ai un menu en php,lorsque je clique sur un element de mon menu il me redirige vers une page php qui contient une requete sql. mon probleme Script php + mysql top liste titre pour webradio [ par mamure ] Bonsoir tout le monde.Je recherche un script php + mysql pour faire une top liste (20 titres) pour webradio.En fait, le systeme ce serait que l'audite connexion php [ par stefh ] bonsoiirr..comment en écrit un script en php pour connecté une base mysql.j'ai déja un code est-ce qu'il est bien codé ou non?? merci de votre réponse


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales