je met en place un fils d'Ariane, mon code marche mais comme je débute je pense qu'il y a possibilité d'améliorer largement le code.
Donc si quelqu'un à les compétences pour me donner quelques conseils et m'améliorer le code.
Voici les détails :
Table rubriques avec id_rubrique, id_parent, titre
Ca donne quelque chose comme ça :
titre id_rubrique id_parent
1er rub 1 0
2èeme 2 1
3ème 3 2
Et voici le code php associé qui serait à optimiser. Je pense que le fait de faire des while tout le temps ça doit ralentir :
Code :
<?PHP
//INSTANCE DE REQUETE
$sql = new Sqlal();
IF(EMPTY($_GET['som'])AND!EMPTY($_GET['rub'])){
$g_id_rub=$_GET['rub'];
$sql->query("SELECT id_rubrique,id_parent,titre FROM rubriques WHERE id_rubrique='".$g_id_rub."';","rub");
$row_sec=$sql->fetch_object("rub");
$id_parent=$row_sec->id_parent;
$id_rub_voulu=$row_sec->id_rubrique;
$nom_rub_voulu=$row_sec->titre;
//REDIRECTION SI RUB A UN PARENT===0 CE QUI NE DEVRAIT PAS ARRIVÉ
IF($id_parent==='0'){
header("Location: index.php?action=visualiser&som=".$id_rub_voulu."");
}
//LORSQUE QUE LA RUBRIQUE À UN PARENT
ELSE {
$sql->query("SELECT id_rubrique,id_parent,titre FROM rubriques WHERE id_rubrique='".$id_parent."';","nom_ssrub");
$row_parent=$sql->fetch_object("nom_ssrub");
$nom_parent=$row_parent->titre;
$id_rub=$row_parent->id_rubrique;
$id_parent_dernier=$row_parent->id_parent;
IF($id_parent_dernier==='0'){
$this->fils_ariane .=' <a href="./index.php?action=visualiser&som='.$id_rub.'">'.$nom_parent.'</a> > '.$nom_rub_voulu;
}
ELSE{
$sql->query("SELECT id_rubrique,titre FROM rubriques WHERE id_rubrique='".$id_parent_dernier."';","nom_premrub");
$row_pr=$sql->fetch_object("nom_premrub");
$nom_pr=$row_pr->titre;
$id_rub_pr=$row_pr->id_rubrique;
$this->fils_ariane .=' <a href="./index.php?action=visualiser&som='.$id_rub_pr.'">'.$nom_pr.'</a> >';
$this->fils_ariane .=' <a href="./index.php?action=visualiser&rub='.$id_rub.'">'.$nom_parent.'</a> >';
$this->fils_ariane .=' '.$nom_rub_voulu;
}
}
}
?>
le but serait que je ne sois pas limité. C'est à dire que j'ai un truc du style tant que la rubrique n'a pas 0 en id_parent on fait le lien.En effet 0 indique que c'est la rubrique principal.
A titre indicatif quand je fais une requête je l'identifie avec un nom différents d'où un truc du style :
"SELECT * FROM table ';","nom_unique"
Voilà en espérant que quelqu'un puisse me donner un coup de main pour l'optimisation du code pour que je ne sois pas limité.
Si la personne pouvais mettre le code avec pas mal de commentaire ça m'aiderai car j'aimerai bien être sûr de comprendre car j'ai du mal avec la notion de récursivité.
Merci d'avance pour votre aide.
A titre indicatif : J'utilise som car en gros, si je trouve som dans l'url, j'affiche une message un peut particulier.
Si tu clic sur une rubrique qui a id_parent à 0, c'est que c'est la principale. Du coup j'affiche sommaire de la rubrique. Alors qu'en classique j'affiche juste le nom de la rubrique. Voici un exemple :
Si on clic sur rubrique principal, donc on a som dans l'url, on affiche :
Home : Sommaire Rubrique principale
Si on clic sur la rubrique secondaire, on a pas som mais juste rub, on affiche :
Home : Rubrique principale > Rubrique secondaire