Menu dynamique

Fermé
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 - Modifié par glodybiss le 24/11/2011 à 11:17
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 - 24 nov. 2011 à 15:18
Bonjour,

J'aimerai afficher un menu mais il y a une erreur que je n'arrive pas à comprendre veillez s'il vous plait vérifer et m'aider. Merci.

Voici les erreurs :

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\internetService\menu_page2.php on line 19


    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\internetService\menu_page2.php on line 22


Voici l'arborescence dans la base des données :

|------ 
|Colonne|Type|Null|Défaut 
|------ 
|//**id**//|int(11)|Non| 
|parent_menu|int(11)|Non| 
|menu|varchar(100)|Non| 
|url|varchar(255)|Non| 
|titre|varchar(200)|Non| 
|description|varchar(200)|Non| 
|mot_cles|varchar(200)|Non| 
== Contenu de la table menu_site 

|1|1|Accueil| | | |  
|2|1|Site manage| | | |  
|3|1|Clients| | | |  
|4|1|Agents| | | |  
|5|1|Myaccount| | | |  
|6|2|Nouveau site| | | |  
|7|2|Afficher Site| | | |  
|8|2|Paramèttre Site| | | |  
|9|2|Tous les clients| | | |  
|10|2|Recemments ajouter| | | |  
|11|2|Nouveau client| | | |  
|12|2|Paramèttre client| | | |  
|13|2|Liste Agents| | | |  
|14|2|Modifier agent| | | |  
|15|2|Ajouter agent| | | |  
|16|2|Modifier infos| | | |  
|17|2|Afficher infos| | | |  
|18|2|Supprimer compte| | | |  


Voici le code :

<?php  
// information pour la connection à le DB 
$host = 'localhost'; 
$user = 'root'; 
$pass = ''; 
$db = 'cybernetdata';  
// connection à la DB 
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); 
mysql_select_db($db) or die ('Erreur :'.mysql_error());  

$query = "SELECT * FROM 'menu_site' WHERE parent_menu=0";   
 $result = mysql_query($query);  
   $n1=mysql_num_rows($result); 
 $i=0;   
echo '<ul>'; 
while ($row = mysql_fetch_array($result)) {    
   $sql = "SELECT * FROM 'menu_site' WHERE id_parent =".$row['menu']."";   
   $sousmenu = mysql_query($sql);  
   $n2=mysql_num_rows($sousmenu); 
   echo($i!=1)? '<li>':'<li  class="last">'; 
   if($n2>0){ 
   echo'<a href="'.$row['url'].'" class="parent"><span>'.$row['menu'].'</span></a>'; 
 echo'<div class="columns two">'; 
  echo '<ul class="one">'; 
   while ($ssmenu = mysql_fetch_array($sousmenu)) {   
   echo '<li><a href="'.$ssmenu['url'].'"><span>'.$ssmenu['menu'].'</span></a></li>';   
  } 
  echo '</ul>';   
 echo '</div>'; 
 } 
 else{ 
 echo ' <a href="'.$row['url'].'"><span>'.$row['menu'].'</span></a>'; 
 } 
 echo '</li>'; 
$i++; 
} 
echo '</ul>';   
?>    



A voir également:

3 réponses

Anoen Messages postés 196 Date d'inscription mardi 10 novembre 2009 Statut Membre Dernière intervention 11 septembre 2013 25
24 nov. 2011 à 12:08
Bonjour,

Tu as une erreur dans ta requête ici :
$sql = "SELECT * FROM 'menu_site' WHERE id_parent =".$row['menu'].""; 


Trop de concaténation tue la concaténation ;)
0
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
24 nov. 2011 à 13:26
Merci
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
Modifié par maka54 le 24/11/2011 à 12:10
$query = "SELECT * FROM 'menu_site' WHERE parent_menu=0";   

si c'est des simples quotes (touche 4 du clavier) qui entourent ton nom de table, c'est faux
0
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
24 nov. 2011 à 13:28
Merci à tous j'ai trouvé une solution le menu s'affiche maintenant mais il y a un problème quand j'essaie d'afficher il m'affiche seulement les parents sur le menu déroulant quand je place la souris au lieu d'afficher les enfants du menu (sous menu)

Voci les codes

<?php 
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'cybernet'; 
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error()); 

$query = "SELECT * FROM 'menu_site' WHERE parent_menu=1";  
	$result = mysql_query($query); 
   $n1=mysql_num_rows($result);
	$i=0;  
	echo '<div id="menu">';
echo '<ul>';
while ($row = mysql_fetch_array($result)) {   
   $sql = "SELECT * FROM 'menu_site' WHERE parent_menu=".$row['1']."";  
   $sousmenu = mysql_query($sql); 
   $n2=mysql_num_rows($sousmenu);
   echo($i!=1)? '<li>':'<li>';
   if($n2>0){
   echo'<a href="'.$row['url'].'"><span>'.$row['menu'].'</span></a>';
		echo '<ul>';
			while ($ssmenu = mysql_fetch_array($sousmenu)) {  
			echo '<li><a href="'.$ssmenu['url'].'">'.$ssmenu['menu'].'</a></li>';  
		}
		echo '</ul>';  
	}
	else{
	echo ' <a href="'.$row['url'].'"><span>'.$row['menu'].'</span></a>';
	}
	echo '</li>';
$i++;
}
echo '</ul>';echo '</div>';  
?>  
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
24 nov. 2011 à 13:49
Hello,

Il faudrait m'expliquer l'utilité de la ligne : echo($i!=1)? '<li>':'<li>';
0
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
24 nov. 2011 à 13:55
Il n'a aucune importance je l'avais utiliser pour un autre code source mais quand j'essaie de l'enlever je perd toute la mise en forme et tout le menu apparait maintenant.
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
24 nov. 2011 à 14:06
Ton site serait-il en ligne pour qu'on puisse "firebuguer" ça ?
0
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
24 nov. 2011 à 14:10
Quoi ? il y a t-il des faille de sécurité ?
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
24 nov. 2011 à 14:13
Non ! Firebug est un outil de Mozilla Firefox permettant d'analyser en temps réel sur la page le code HTML afin de détecter les erreurs
0