Gérer le forum:  Aide  •  Rechercher  •  Liste des Membres  •  Groupes d'utilisateurs   •  S'enregistrer  •  Profil  •  Se connecter pour vérifier ses messages privés  •  Connexion 
 [PHP] - Requêtes SQL avec 1 seul array PHP Voir le sujet suivant
Voir le sujet précédent
Poster un nouveau sujetRépondre au sujet
Auteur Message
artxtra
Newbiiiie
Newbiiiie




Messages: 4

MessagePosté le: Mer 22 Nov 2006 - 23:23 Répondre en citantRevenir en haut

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'utilisateurEnvoyer un message privéVisiter le site web du posteur

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


Post-BTS
Sexe: Sexe:Masculin
Messages: 5584
Localisation: Montpellier

MessagePosté le: Jeu 23 Nov 2006 - 00:45 Répondre en citantRevenir en haut

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

_________________
Hey les amis, pensez à suivre @webig sur Twitter, et pourquoi pas me suivre moi @cybervince Wink
Voir le profil de l'utilisateurEnvoyer un message privéVisiter le site web du posteurMSN MessengerNuméro ICQ
artxtra
Newbiiiie
Newbiiiie




Messages: 4

MessagePosté le: Jeu 23 Nov 2006 - 12:29 Répondre en citantRevenir en haut

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'utilisateurEnvoyer un message privéVisiter le site web du posteur
artxtra
Newbiiiie
Newbiiiie




Messages: 4

MessagePosté le: Ven 24 Nov 2006 - 12:11 Répondre en citantRevenir en haut

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'utilisateurEnvoyer un message privéVisiter le site web du posteur
Montrer les messages depuis:      
Poster un nouveau sujetRépondre au sujet
 Sauter vers:   



Voir le sujet suivant
Voir le sujet précédent
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum