Auteur |
Message |
artxtra
Newbiiiie
Messages: 4
|
Posté le:
Mer 22 Nov 2006 - 23:23 |
|
Bonjour à tous,
Dans un CMS (wordpress), j'ai des pages, avec des sous-pages, des sous-sous-pages, etc..
Chaque page a un ID, et il existe un champ post_parent qui renvoie l'ID du parent.
Ainsi :
Code: |
SELECT ID FROM matable WHERE post_parent=240 |
240 étant pour l'exemple ; le résultat de la requête est stockée dans une variable $enfants.
Jusque là, facile.
Là où ça se corse, c'est que je veux faire une requête qui me sélectionnerait les enfants (de 240), les enfants des enfants (de 240, ses petits-enfants), et encore une fois ses arrières-petits enfants.
ID240 = FORMATION
enfant = WEB
petit-enfant = PRODUCTION
arr.ptit-enfant = la DOCTYPE
Le problème n°1, si un enfant n'a pas d'enfant, alors Error.
Le problème n°2, je voudrais coller tout ça (la valeur des ID) dans un array, pour pouvoir l'exploiter après dans une fonction.
Le résultat actuel : Enfants, petits-enfants et arrières-petits-enfants
Le code source :
Code: |
<php>get_results("SELECT ID from $wpdb->posts WHERE post_parent =240");
echo "<ul>";
foreach ($enfs as $enf)
{echo ("<li>".$enf->ID."</li>");
$pt_enfs =$wpdb->get_results("SELECT ID from $wpdb->posts WHERE post_parent = $enf->ID");
foreach ($pt_enfs as $pt_enf)
{echo ("<li>".$pt_enf->ID."</li>");
$arr_pt_enfs = $wpdb->get_results("SELECT ID from $wpdb->posts WHERE post_parent = $pt_enf->ID");
foreach($arr_pt_enfs as $arr_pt_enf)
{echo ("<li>".$arr_pt_enf->ID."</li>");}
}
}
echo "</ul>";
?>
|
Je cherche donc à coder une condition qui sauterait le foreach en cas $arr_pt_enf=="" ; sauf que le if dsoit se trouver avant le foreach, et que $arr_pt_enf se trouverait après le if...
Bref.
J'espère que j'ai été clair, et que quelqu'un pourra m'apporter une réponse !
D'avance merci. |
|
|
|
|
N'oubliez pas de vous inscrire à la communauté pour participer. Si vous êtes déjà membre, connectez-vous pour faire disparaître ce bandeau publicitaire. |
Vincent
Webmaster
Sexe:
Messages: 5584
Localisation: Montpellier
|
Posté le:
Jeu 23 Nov 2006 - 00:45 |
|
Tout ce que je vois, c'est de faire un test sur isset($arr_pt_enfs) ou empty($arr_pt_enfs) avant d'entrer dans le foreach.
Ou alors, étant donné que ca n'est qu'un Warning, bypasser l'affichage du Warning, mais c'est pas propre.
Après recherche, j'ai trouvé ce post qui pense comme moi: http://www.phpwsforums.com/showthread.php?t=276
PS: Multiformat repéré |
_________________ Hey les amis, pensez à suivre @webig sur Twitter, et pourquoi pas me suivre moi @cybervince |
|
|
|
artxtra
Newbiiiie
Messages: 4
|
Posté le:
Jeu 23 Nov 2006 - 12:29 |
|
salut Vince,
merci pour la réponse, je vais voir ce que je peux faire avec. (l'empty me parait mieux) |
|
|
|
|
artxtra
Newbiiiie
Messages: 4
|
Posté le:
Ven 24 Nov 2006 - 12:11 |
|
Ca marche, c'est cool.
J'ai affiché les résultats de la requête dans des <li>, pour voir si ça marchait.
Maintenant, la question à 100 balles :
Je voudrais concaténer le résultat des 3 requêtes dans une seule variable, ou array, afin de passer chaque ID dans une fonction de WordPress.
Comment qu'on fait ? Steuplé ! |
|
|
|
|
|