Auteur |
Message |
artxtra
Newbiiiie
![Newbiiiie Newbiiiie](images/rangs/1.gif)
Messages: 4
|
Posté le:
Mer 22 Nov 2006 - 23:23 |
![Répondre en citant Répondre en citant](templates/webigv3/images/lang_french/icon_quote.gif) ![Revenir en haut Revenir en haut](templates/webigv3/images/icon_up.gif) |
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. |
|
|
![Voir le profil de l'utilisateur Voir le profil de l'utilisateur](templates/webigv3/images/lang_french/icon_profile.gif) ![Envoyer un message privé Envoyer un message privé](templates/webigv3/images/lang_french/icon_pm.gif) ![Visiter le site web du posteur Visiter le site web du posteur](templates/webigv3/images/lang_french/icon_www.gif) |
|
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
![Webmaster Webmaster](images/rangs/adminflash.gif)
![](images/avatars/23636565646ed677baf812.jpg)
![Post-BTS Post-BTS](http://www.web-ig.com/forum/templates/webigv3/images/icon_promo_post.png) Sexe: ![Sexe:Masculin Sexe:Masculin](templates/webigv3/images/icon_minigender_male.gif)
Messages: 5584
Localisation: Montpellier
|
Posté le:
Jeu 23 Nov 2006 - 00:45 |
![Répondre en citant Répondre en citant](templates/webigv3/images/lang_french/icon_quote.gif) ![Revenir en haut Revenir en haut](templates/webigv3/images/icon_up.gif) |
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é ![Laughing](images/smiles/icon_lol.gif) |
_________________ Hey les amis, pensez à suivre @webig sur Twitter, et pourquoi pas me suivre moi @cybervince ![Wink](images/smiles/icon_wink.gif) |
|
![Voir le profil de l'utilisateur Voir le profil de l'utilisateur](templates/webigv3/images/lang_french/icon_profile.gif) ![Envoyer un message privé Envoyer un message privé](templates/webigv3/images/lang_french/icon_pm.gif) ![Visiter le site web du posteur Visiter le site web du posteur](templates/webigv3/images/lang_french/icon_www.gif) ![MSN Messenger MSN Messenger](templates/webigv3/images/lang_french/icon_msnm.gif) ![Numéro ICQ Numéro ICQ](templates/webigv3/images/lang_french/icon_icq_add.gif) |
|
artxtra
Newbiiiie
![Newbiiiie Newbiiiie](images/rangs/1.gif)
Messages: 4
|
Posté le:
Jeu 23 Nov 2006 - 12:29 |
![Répondre en citant Répondre en citant](templates/webigv3/images/lang_french/icon_quote.gif) ![Revenir en haut Revenir en haut](templates/webigv3/images/icon_up.gif) |
salut Vince,
merci pour la réponse, je vais voir ce que je peux faire avec. (l'empty me parait mieux) |
|
|
![Voir le profil de l'utilisateur Voir le profil de l'utilisateur](templates/webigv3/images/lang_french/icon_profile.gif) ![Envoyer un message privé Envoyer un message privé](templates/webigv3/images/lang_french/icon_pm.gif) ![Visiter le site web du posteur Visiter le site web du posteur](templates/webigv3/images/lang_french/icon_www.gif) |
|
artxtra
Newbiiiie
![Newbiiiie Newbiiiie](images/rangs/1.gif)
Messages: 4
|
Posté le:
Ven 24 Nov 2006 - 12:11 |
![Répondre en citant Répondre en citant](templates/webigv3/images/lang_french/icon_quote.gif) ![Revenir en haut Revenir en haut](templates/webigv3/images/icon_up.gif) |
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é ! |
|
|
![Voir le profil de l'utilisateur Voir le profil de l'utilisateur](templates/webigv3/images/lang_french/icon_profile.gif) ![Envoyer un message privé Envoyer un message privé](templates/webigv3/images/lang_french/icon_pm.gif) ![Visiter le site web du posteur Visiter le site web du posteur](templates/webigv3/images/lang_french/icon_www.gif) |
|
|