[SQL] Menu à plusieurs niveaux, afficher les non vides

Eléphant du PHP | 82 Messages

21 oct. 2011, 00:53

Hello à tous!

Je suis en train de faire un menu. Mon menu est lier à une base de donnée. C'est un peu comme sur le siteduzero. Il y a les titres principaux, sous titre, sous-sous titre, etc..

Avant de coder, j'aimerais être sur que ma façon de faire est juste et qu'il n'y a pas plus simple. Ma table a les champs suivant: L'id, l'id du parent, le nom.
Le niveau de base à comme parent -1.

Je sais déjà comment afficher tout le niveau 3 par exemple:
$query = $bdd->query('SELECT * FROM work_domaines WHERE dom_parent IN 
       (SELECT dom_id FROM work_domaines WHERE dom_parent IN 
               (SELECT dom_id FROM work_domaines WHERE dom_parent=-1))');
while ($donnees = $query->fetch()) {
echo $donnees['dom_name'].'<br />';
Je sais aussi comment procédé pour ajouté les domaines de niveau 2 (ou autre) d'un certain domaine:
$query = $bdd->query('SELECT * FROM work_domaines WHERE dom_parent IN 
               (SELECT dom_id FROM work_domaines WHERE dom_parent=9)');
while ($donnees = $query->fetch()) {
echo 'niveau2 domain_id =9: '.$donnees['dom_name'].'<br />';
}
Quel est la meilleur façon de procéder pour afficher tout les niveaux et tout le menu?

Je pensais à quelque chose comment ça
$query = $bdd->query('SELECT dom_id, dom_name FROM work_domaines WHERE dom_parent=-1');
while ($donnees = $query->fetch()) {
	echo 'niveau1: '.$donnees['dom_name'].'<br />';
	$query2 = $bdd->query('SELECT dom_id, dom_name FROM work_domaines WHERE dom_parent='.$donnees['dom_id']);
	while ($donnees2 = $query2->fetch()) {
		echo '---niveau2: '.$donnees2['dom_name'].'<br />';
		$query3 = $bdd->query('SELECT dom_id, dom_name FROM work_domaines WHERE dom_parent='.$donnees2['dom_id']);
			while ($donnees3 = $query3->fetch()) {
			echo '------niveau3: '.$donnees3['dom_name'].'<br />';
			$query4 = $bdd->query('SELECT dom_id, dom_name FROM work_domaines WHERE dom_parent='.$donnees3['dom_id']);
			while ($donnees4 = $query4->fetch()) {
			echo '----------niveau4: '.$donnees4['dom_name'].'<br />';
			}
		}
	}
}
Que pensez vous de cette façon?

Je suis sur la bonne voie?

Ma dernière requete affiche le menu. Comment puis-je faire pour que il y aie entre parenthèse le nombre d'article que contient le domaine (+ ces sous domaines).

Genre

1)niveau0 (6 articles)
---1)niveau2 (1 art)
---2)niveau2 (5 art)
------1)niveau3 (0 art) // donc on n'affiche pas ce menu
------2)niveau3 (5 art)

Merci beaucoup!

Eléphanteau du PHP | 44 Messages

21 oct. 2011, 07:02

Faire autant de requêtes imbriquées n'est pas la bonne solution.

représentation intervallaire va sûrement t'être utile.

Eléphant du PHP | 82 Messages

21 oct. 2011, 21:19

Merci, j'ai lu et compris, je vais voir si je vais plutôt utilisé ça.

Et pour afficher le nombre de travaux (les niveaux inférieurs inclus). Comment je procède?

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

22 oct. 2011, 14:05

Salut,

En théorie je pense que cela peux se faire avec une ou plusieurs auto jointure.

Regarde sur http://sqlpro.developpez.com il me semble qu'il y a un exemple.



@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 82 Messages

28 oct. 2011, 22:16

Hello!!

J'ai bien tout regarder, et la solution la plus simple reste la technique que j'ai montrée dans mon premier post (mettre un champs dom_parent).

Maintenant j'ai une autre question. si j'ai mon menu comme ça:

1)niveau0 (6 articles)
---1)niveau2 (1 art)
---2)niveau2 (5 art)
------1)niveau3 (0 art) // donc on n'affiche pas ce menu
------2)niveau3 (5 art)

Et que l'on clique sur niveau0 (6 articles)

J'aimerais que ma page affiche les 6 articles (c'est a dire que ça aie chercher dans tout les sous domaines et que ça affiche tout), et plus en monte dans les niveaux, plus l'affichage devient restrictif). Chaque article a un champ domain_id (qui donne l'id du domaine :D )..

Comment je peux procéder pour faire ça?

Merci

Eléphant du PHP | 82 Messages

02 nov. 2011, 13:39

up

ViPHP
ViPHP | 2291 Messages

02 nov. 2011, 18:27

Salut,

donne peut-être la structure de ta table c'est plus simple.

A+
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 82 Messages

02 nov. 2011, 19:55

Hello!

Merci pour ta réponse!

La table "domains" à les champs dom_id, dom_parent, dom_name

Le champ dom_parent contient l'id du parent. Si celui ci n'a pas de parent, donc est à la racine (le niveau le plus bas), son dom_parent = -1 .

La table "tab_works" (qui contient les travaux), contient plusieurs champs et est liée a un domaine avec son champ work_domain qui est liée à dom_id.

Pour le moment je n'affiche que les travaux qui sont dans le domaine sélectionné. Mais ma requête ne va pas chercher dans les domaines supérieur au domaine sélectionné (comme je le souhaiterais):
// Récupérer tous les travaux     
    			$page_works = $bdd->prepare('SELECT work_id, work_name, work_desc, doc_format, work_type, work_acces, dom_name, dom_id FROM tab_works, domains WHERE work_status = 1 AND work_statusM = 1 AND work_domain = :work_domain AND work_domain = dom_id ORDER BY work_id DESC LIMIT :premier, :nombre'); 
				$page_works->bindValue(':work_domain', $_GET['value'], PDO::PARAM_INT);
				$page_works->bindValue(':premier', $premierMessageAafficher, PDO::PARAM_INT);
				$page_works->bindValue(':nombre', $nombreDeMessagesParPage, PDO::PARAM_INT);
				$page_works->execute();


Voici comment je me repère dans les domaines pour l'affichage (du fil d'ariane et du menu):
<?php switch($ort)
{
	case 1: // Pour le tri par domain
	
	  // Verifier le domaine principale
	if (!$dom_exist) // Verifie si il y a un domain
	{
		erreur(ERR_DOM_NOT_EXIST);
	}
	
	$query1 = $bdd->prepare('SELECT * FROM domains WHERE dom_id = ?');
$query1->execute(array((int)$_GET['value']));
$donnees1 = $query1->fetch();
$url_dom_name1= mrpropre(stripslashes(htmlspecialchars($donnees1['dom_name'])));
$domaine= $donnees1['dom_name'];
if ($donnees1['dom_parent']!=-1) 
{
	$query2 = $bdd->prepare('SELECT * FROM domains WHERE dom_id = ?');
	$query2->execute(array($donnees1['dom_parent']));
	$donnees2 = $query2->fetch();
	$url_dom_name2= mrpropre(stripslashes(htmlspecialchars($donnees2['dom_name'])));
	$parent1= $donnees2['dom_name'];
	if ($donnees2['dom_parent']!=-1)
	{
		$query3 = $bdd->prepare('SELECT * FROM domains WHERE dom_id = ?');
		$query3->execute(array($donnees2['dom_parent']));
		$donnees3 = $query3->fetch();
		$url_dom_name3= mrpropre(stripslashes(htmlspecialchars($donnees3['dom_name'])));
		$parent2= $donnees3['dom_name'];
		if ($donnees3['dom_parent']!=-1)
		{
			$query4 = $bdd->prepare('SELECT * FROM domains WHERE dom_id = ?');
			$query4->execute(array($donnees3['dom_parent']));
			$donnees4 = $query4->fetch();
			$url_dom_name4= mrpropre(stripslashes(htmlspecialchars($donnees4['dom_name'])));
			// On affiche le fil d'ariane
			$ariane= '<a href="p1-liste-des-travaux-1-'.$donnees4['dom_id'].'-'.$url_dom_name4.'.html">'.stripslashes(htmlspecialchars($donnees4['dom_name'])).'</a> > <a href="p1-liste-des-travaux-1-'.$donnees3['dom_id'].'-'.$url_dom_name3.'.html">'.stripslashes(htmlspecialchars($donnees3['dom_name'])).'</a> > <a href="p1-liste-des-travaux-1-'.$donnees2['dom_id'].'-'.$url_dom_name2.'.html">'.stripslashes(htmlspecialchars($donnees2['dom_name'])).'</a> > <a href="p1-liste-des-travaux-1-'.$donnees1['dom_id'].'-'.$url_dom_name1.'.html">'.stripslashes(htmlspecialchars($donnees1['dom_name'])).'</a>';
			$query1->closeCursor();
			$query2->closeCursor();
			$query3->closeCursor();
			$query4->closeCursor();
			$sous_cat = 0; // Nombre de sous catégorie
		}
		else
		{
			$ariane= '<a href="p1-liste-des-travaux-1-'.$donnees3['dom_id'].'-'.$url_dom_name3.'.html">'.stripslashes(htmlspecialchars($donnees3['dom_name'])).'</a> > <a href="p1-liste-des-travaux-1-'.$donnees2['dom_id'].'-'.$url_dom_name2.'.html">'.stripslashes(htmlspecialchars($donnees2['dom_name'])).'</a> > <a href="p1-liste-des-travaux-1-'.$donnees1['dom_id'].'-'.$url_dom_name1.'.html">'.stripslashes(htmlspecialchars($donnees1['dom_name'])).'</a>';
			$query1->closeCursor();
			$query2->closeCursor();
			$query3->closeCursor();
			$sous_cat = 1; // Nombre de sous catégorie
		}
	}
	else
	{
		$ariane= '<a href="p1-liste-des-travaux-1-'.$donnees2['dom_id'].'-'.$url_dom_name2.'.html">'.stripslashes(htmlspecialchars($donnees2['dom_name'])).'</a> > <a href="p1-liste-des-travaux-1-'.$donnees1['dom_id'].'-'.$url_dom_name1.'.html">'.stripslashes(htmlspecialchars($donnees1['dom_name'])).'</a>';
		$query1->closeCursor();
		$query2->closeCursor();
		$sous_cat = 2; // Nombre de sous catégorie
	}
}
else
{
	$ariane= '<a href="p1-liste-des-travaux-1-'.$donnees1['dom_id'].'-'.$url_dom_name1.'.html">'.stripslashes(htmlspecialchars($donnees1['dom_name'])).'</a>';
	$query1->closeCursor();
	$sous_cat = 3; // Nombre de sous catégorie
}


	echo '<div id="ariane"><a href="'.htmlspecialchars($ip_serv).'">Collaide</a> > <a href="p1-liste-des-travaux.html">Liste des travaux</a> > '.$ariane.'</div>
	
  <h1>Liste des travaux dans le domaine: '.stripslashes(htmlspecialchars($data['dom_name'])).'</h1>';
Grâce à la variable sous cat, je sais ou je me situe. J'affiche ensuite en fonction le fil d'ariane et aussi le menu:
switch ($ort)
	{
		case 1: // travaux
		echo '<div class="menu_gauche">
    	<h5>Menu</h5>';
		// Switch sur le contenu du menu
		switch ($sous_cat)
		{
			case 0:
			echo '<ul><li class="lvl_1"><strong><a class="noir" href="p1-liste-des-travaux-1-'.$donnees4['dom_id'].'-'.$url_dom_name4.'.html">'.stripslashes(htmlspecialchars($donnees4['dom_name'])).'</a></strong></li>
			<li class="lvl_2"><a href="p1-liste-des-travaux-1-'.$donnees3['dom_id'].'-'.$url_dom_name3.'.html">'.stripslashes(htmlspecialchars($donnees3['dom_name'])).'</a></li>
			<li class="lvl_3"><a href="p1-liste-des-travaux-1-'.$donnees2['dom_id'].'-'.$url_dom_name2.'.html">'.stripslashes(htmlspecialchars($donnees2['dom_name'])).'</a></li>';
			$query = $bdd->prepare('SELECT dom_name, dom_id FROM domains WHERE dom_parent = ?');
			$query->execute(array($donnees2['dom_id']));
			while ($data = $query->fetch())
			{
				$url_dom_name1= mrpropre(stripslashes(htmlspecialchars($donnees1['dom_name'])));
				if ($data['dom_id']==$donnees1['dom_id'])
					echo '<li class="lvl_4">'.stripslashes(htmlspecialchars($data['dom_name'])).'</li>';
				else
					echo '<li class="lvl_4"><a href="p1-liste-des-travaux-1-'.$data['dom_id'].'-'.$url_dom_name1.'.html">'.stripslashes(htmlspecialchars($data['dom_name'])).'</a></li>';
			}
			echo '</ul>';
			break;
			case 1:
			echo '<ul><li class="lvl_1"><strong><a class="noir" href="p1-liste-des-travaux-1-'.$donnees3['dom_id'].'-'.$url_dom_name3.'.html">'.stripslashes(htmlspecialchars($donnees3['dom_name'])).'</a></strong></li>
			<li class="lvl_2"><a href="p1-liste-des-travaux-1-'.$donnees2['dom_id'].'-'.$url_dom_name2.'.html">'.stripslashes(htmlspecialchars($donnees2['dom_name'])).'</a></li>';
			$query = $bdd->prepare('SELECT dom_name, dom_id FROM domains WHERE dom_parent = ?');
			$query->execute(array($donnees2['dom_id']));
			while ($data = $query->fetch())
			{
				$url_dom_name1= mrpropre(stripslashes(htmlspecialchars($donnees1['dom_name'])));
				if ($data['dom_id']==$donnees1['dom_id'])
				{
					echo '<li class="lvl_3">'.stripslashes(htmlspecialchars($data['dom_name'])).'</li>';
					$query5 = $bdd->prepare('SELECT dom_name, dom_id FROM domains WHERE dom_parent = ?');
					$query5->execute(array($donnees1['dom_id']));
					while ($donnees5 = $query5->fetch())
					{
						$url_dom_name5=mrpropre(stripslashes(htmlspecialchars($donnees5['dom_name'])));
						echo '<li class="lvl_4"><a href="p1-liste-des-travaux-1-'.$donnees5['dom_id'].'-'.$url_dom_name5.'.html">'.stripslashes(htmlspecialchars($donnees5['dom_name'])).'</a></li>';
					}
				}
				else
				{
					echo '<li class="lvl_3"><a href="p1-liste-des-travaux-1-'.$data['dom_id'].'-'.$url_dom_name1.'.html">'.stripslashes(htmlspecialchars($data['dom_name'])).'</a></li>';
				}
			}
			echo '</ul>';
			break;
			case 2:
			echo '<ul><li class="lvl_1"><strong><a class="noir" href="p1-liste-des-travaux-1-'.$donnees2['dom_id'].'-'.$url_dom_name2.'.html">'.stripslashes(htmlspecialchars($donnees2['dom_name'])).'</a></strong></li>';
			$query3 = $bdd->prepare('SELECT dom_name, dom_id FROM domains WHERE dom_parent = ?');
			$query3->execute(array($donnees2['dom_id']));
			while ($donnees3 = $query3->fetch())
			{
				$url_dom_name3= mrpropre(stripslashes(htmlspecialchars($donnees3['dom_name'])));
				if ($data['dom_id']==$donnees3['dom_id'])
				{
					echo '<li class="lvl_2">'.stripslashes(htmlspecialchars($donnees3['dom_name'])).'</li>';
					$query4 = $bdd->prepare('SELECT dom_name, dom_id FROM domains WHERE dom_parent = ?');
					$query4->execute(array($donnees3['dom_id']));
					while ($donnees4 = $query4->fetch())
					{
						$url_dom_name4= mrpropre(stripslashes(htmlspecialchars($donnees4['dom_name'])));
						echo '<li class="lvl_3"><a href="p1-liste-des-travaux-1-'.$donnees4['dom_id'].'-'.$url_dom_name4.'.html">'.stripslashes(htmlspecialchars($donnees4['dom_name'])).'</a></li>';
					}
				}
				else
				{
					echo '<li class="lvl_2"><a href="p1-liste-des-travaux-1-'.$donnees3['dom_id'].'-'.$url_dom_name3.'.html">'.stripslashes(htmlspecialchars($donnees3['dom_name'])).'</a></li>';
				}
			}
			echo '</ul>';
			break;
			case 3:
			echo '<ul><li class="lvl_1"><strong><a class="noir" href="p1-liste-des-travaux-1-'.$donnees1['dom_id'].'-'.$url_dom_name1.'.html">'.stripslashes(htmlspecialchars($donnees1['dom_name'])).'</a></strong></li>';
			$query2 = $bdd->prepare('SELECT dom_name, dom_id FROM domains WHERE dom_parent = ?');
			$query2->execute(array($donnees1['dom_id']));
			while ($donnees2 = $query2->fetch())
			{
				$url_dom_name2= mrpropre(stripslashes(htmlspecialchars($donnees2['dom_name'])));
				echo '<li class="lvl_2"><a href="p1-liste-des-travaux-1-'.$donnees2['dom_id'].'-'.$url_dom_name2.'.html">'.stripslashes(htmlspecialchars($donnees2['dom_name'])).'</a></li>';
			}
			echo '</ul>';
			break;
			default:
			break;
		} // Fin du switch sous-cat
		
		echo '</div>'; // Fin menu 
		echo '<div class="liste_droite">';
		break; // Fin du cas DOMAINES
	} // Fin du switch ort
J'ai tout fais moi même donc c'est possible que ça n'est pas très propre pour vous. Cependant ça fonctionne et affiche ce que je desire :)

Maintenant, je cherche un moyen d'afficher tout les travaux qui se situe dans le domaine séléctionné mais aussi ceux des domaines supérieur à ce dernier dans l'arbre. Plus en avance dans l'arbre, plus l'affichage est restreint... Donc, plus on est précis dans notre recherche (on monte dans l'arbre), plus le nombre de travaux affiché sera faible (normal)...

J'espère avoir été clair :)

Merci

ViPHP
ViPHP | 2291 Messages

02 nov. 2011, 20:11

Ce que je voulais dire c'est de nous donner un export de ta table,
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 82 Messages

03 nov. 2011, 00:24

Hello!

Je t'en lance une partie (parce que c'est gros :) )
--
-- Structure de la table `domains`
--

CREATE TABLE IF NOT EXISTS `domains` (
  `dom_id` int(11) NOT NULL AUTO_INCREMENT,
  `dom_parent` int(11) NOT NULL,
  `dom_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  `dom_comment` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `dom_works` int(11) NOT NULL,
  PRIMARY KEY (`dom_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=141 ;

--
-- Contenu de la table `domains`
--

INSERT INTO `domains` (`dom_id`, `dom_parent`, `dom_name`, `dom_comment`, `dom_works`) VALUES
(1, -1, 'Langues', '', 0),
(2, -1, 'Sciences humaines', '', 0),
(3, -1, 'Sciences naturelles', '', 0),
(4, -1, 'Autres documents', '', 0),
(67, 10, 'Macroéconomie', '', 0),
(7, 2, 'Arts', '', 0),
(8, 2, 'Droit', '', 0),
(9, 2, 'Histoire', '', 0),
(10, 2, 'Economie', '', 0),
(11, 2, 'Géographie', '', 0),
(12, 2, 'Politique', '', 0),
(13, 2, 'Phylosophie', '', 0),
(14, 2, 'Sports', '', 0),
(15, 3, 'Biologie', '', 0),
(16, 3, 'Chimie', '', 0),
(17, 3, 'Physique', '', 0),
(18, 3, 'Electronique', '', 0),
(19, 3, 'Informatique', '', 0),
(20, 3, 'Mathématique', '', 0),
(21, 3, 'Médecine', '', 0),
(22, 4, 'Curiculum Vitae (CV)', '', 0),
(23, 4, 'Lettres de motivation', '', 0),
(24, 1, 'Français', '', 0),
(25, 1, 'Allemand', '', 0),
(26, 1, 'Anglais', '', 0),
(27, 1, 'Italien', '', 0),
(28, 1, 'Espagnole', '', 0),
(29, 1, 'Grec', '', 0),
(30, 1, 'Latin', '', 0),
(31, 7, 'Musique', '', 0),
(32, 7, 'Visuels', '', 0),
(33, 7, 'Cinéma', '', 0),
(34, 7, 'Littérature', '', 0),
(35, 7, 'Photographie', '', 0),
(104, 8, 'Droit privé suisse', '', 0),
(103, 8, 'Droit public suisse', '', 0),
(41, 10, 'Commerce', '', 0),
(42, 10, 'Gestion', '', 0),
(43, 14, 'Pédagogie', '', 0),
(44, 14, 'Performence', '', 0),
(45, 3, 'Mecanique', '', 0),
(46, 19, 'Programmation', '', 0),
(47, 19, 'Système d''exploitation', '', 0),
(48, 19, 'Graphisme', '', 0),
(49, 20, 'Analyse', '', 0),
(50, 20, 'Algèbre', '', 0),
(51, 41, 'International', '', 0),
(52, 41, 'Etude de marcher', '', 0),
(53, 42, 'Comptabilité', '', 0),
(54, 42, 'Contrôle de gestion', '', 0),
(55, 42, 'Finance', '', 0),
(56, 46, 'HTML/CSS', '', 0),
(57, 46, 'PHP/MYSQL', '', 0),
(58, 46, 'Javascript', '', 0),
(59, 46, 'C', '', 0),
(60, 46, 'C++', '', 0),
(61, 46, 'Java', '', 0),
(62, 47, 'Windows', '', 0),
(63, 47, 'Linux', '', 0),
(64, 47, 'Unix', '', 0),
(65, 47, 'Mac', '', 0),
(66, 48, 'Photoshop', '', 0);
Si tu as besoin d'autre chose n'hésite pas :)

Merci à toi!

ViPHP
ViPHP | 2291 Messages

03 nov. 2011, 11:33

Salut,

Comme ceci ca donne quoi ?
$sql =  "SELECT COUNT(*) AS Total,
			  T1.dom_name AS parent,
			  GROUP_CONCAT(T2.dom_name ORDER BY T1.dom_id SEPARATOR '-') AS enfants,
			  GROUP_CONCAT(T2.dom_id ORDER BY T1.dom_id SEPARATOR '-') AS id

			FROM domains T1
			  INNER JOIN domains T2
			    ON T1.dom_id = T2.dom_parent
			GROUP BY T1.dom_id
			ORDER BY T1.dom_id";

   $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

       while($row = mysql_fetch_object($req))
	    {
           /*
            * - $row->enfants reprend le groupe des noms des sous catégories (exemple = nom1-nom2-nom3-nom4)..
            * - $row->parent reprend les noms des  catégories parent..
            * - $row-id reprend le groupe d'id des sous catégorie (exemple = 21-22-23-24-25-26)
            */


           $name  = explode('-',$row->enfants);
           $id    = explode('-',$row->id);
           $count = count($id);


	    	echo '<ul>' .$row->parent . ' (' .$row->Total. ')</ul>';

	    	for ($i=0; $i<$count; $i++)
	    	{
               echo '<li><a href="url.php?id_unique='.$id[$i].'&id_groupe='.$row->id.'">' .$name[$i] . '</a></li>';
            }



	    }
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 82 Messages

07 nov. 2011, 14:21

Hello!

Je te remercie beaucoup!

Cependant, ce n'est pas ce que je cherche. J'arrive à afficher mes domaines, pour ça je n'ai pas de problème.. Maintenant, j'aimerais afficher le nombre de travaux que contiennent ces domaines (liaison avec la table: tab_work par le champs work_domain, comme dit plus haut). J'aimerais donc que pour chaque domaine, il soit écrit combien de travaux contient cette catégorie. Comme ici: http://www.siteduzero.com/tutoriel-1-352-tutoriels.html.

Sauf que, j'aimerais aussi que lorsque l'on clique sur Programmation (en gardant l'exemple du sdz), on a les sous domaine de programmation disponible avec le nombre de travaux qu'ils contiennent (cf ici : http://www.siteduzero.com/tutoriel-1-57 ... ation.html). MAIS que en plus de ça, tout ces travaux soit afficher dans une liste. On aura donc, le menu à gauche qui indique les sous domaines au domaine sélectionné. Et en plus de ça sur le contenu de la page, tous les travaux seront afficher. Plus on avancera dans le menu (et donc en précision dans la recherche, moins il y aura de travaux afficher sur la page).
Sera donc affiché: les travaux du domaine sélectionné, les travaux de ses sous domaines, puis de leur sous-sous-domaine si ils existent.

Comme dis plus haut ma variable $sous_cat, me dit ou je me situe dans l'arbre et combien de sous catégorie il existe depuis la catégorie sélectionnée.

Merci d'avance!

Tex

Eléphant du PHP | 82 Messages

08 nov. 2011, 18:46

Pfiou, je me demande même si c'est possible :)

ViPHP
ViPHP | 2291 Messages

08 nov. 2011, 19:58

Pfiou, je me demande même si c'est possible :)
C'est possible d'avoir la table tab_work et quelques données
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 82 Messages

08 nov. 2011, 22:01

Salut!

Merci pour ton aide!

Je t'ai envoyé un peu de la table en PV (car elle contient des prenoms et nom...)

Merci d'avance!!

Texicitys