2016-06-08 11 views
0

EDIT: Gelösthinzufügen Kinder und Enkel Array mit mysql_query Wordpress

mich Lösung Ended bis diese durch die Enkel Array modifizieren - es benötigt implodiert werden, bevor es in der PDO-Funktion vorbereiten verwendet werden könnten.


Ich bin neu hier, hoffentlich mache ich das richtig!

Ich versuche folgendes Ausführen von Abfragen auf einer Wordpress-Datenbank zu erreichen:

  1. verwenden eine mysql PDO vorbereiten Funktion Kind Beiträge von ausgewählten Eltern
  2. verwenden Sie eine andere PDO vorbereiten Funktion abrufen Enkel abrufen Pfosten
  3. all diese in ein einziges Array integriert (gleicher Schlüssel)

ich habe so weit wie die Anzeige die Kinder bekommen, aber Probleme beim Hinzufügen von gra ndchildren in das Array. Hier ist der Code:

$id=$_REQUEST['selected']; 
$a=implode(',', array_map('intval', $id)); 


$hostname='localhost'; 
$username='victoria_wp_site'; 
$password='PASSWORD'; 

$db = new PDO("mysql:dbname=victoria_wp_site;host=$hostname",$username,$password); 

$qry = $db->prepare("SELECT id,post_title 
      FROM `wp_posts` 
     WHERE `post_parent` IN ($a) and post_name not like '%revision%' "); 
$qry->execute(); 

$i=0;  
while($data = $qry->fetch()){ 
$result[$i]=$data; 
    $i++; 
     } 


$b = implode(',', array_column($result, 'id')); 

$qry_grandchild = $db->prepare("SELECT id, post_title 
      FROM `wp_posts` 
     WHERE `post_parent` IN ($b) AND post_name not like '%revision%' "); 
$qry_grandchild->execute();  


while($data = $qry_grandchild->fetch()) { 
    $result[$i]=$data; 
    $i++; 
}  


echo json_encode($result); 

Nicht sicher, was ich falsch mache. Jede Hilfe wird sehr geschätzt!

+0

Danke für Ihre Antwort - der ursprüngliche Code war nicht mein eigener, also versuche ich mit dem zu arbeiten, was schon da ist, ohne alles neu schreiben zu müssen. Der Teil, den ich hinzufügen möchte, ist die Einbeziehung der Enkelkinder. Empfiehlst du mir, die ganze Sache neu zu schreiben? – WebMeister

+0

Ich entschuldige mich für meine Unwissenheit in diesem Bereich (dies ist ein neuer Bereich für mich), aber könnten Sie weitere Details oder vielleicht eine zuverlässige Ressource, die relevant ist, um das zu erreichen? Ps.s. - Sie haben erwähnt, dass die Logik in Ordnung ist, aber ich bekomme immer noch nur die Kinder (keine Enkelkinder). Etwas fehlt oder ist falsch, aber ich kann es nicht genau lokalisieren – WebMeister

+3

Bitte beachten Sie, dass die 'mysql_xx' Funktionen veraltet sind und * aus den neuesten Versionen von PHP * entfernt wurden. Wenn Ihr Code diese Funktionen verwendet, ist er bereits mit der aktuellen PHP-Hauptversion inkompatibel. – Spudley

Antwort

0

Das Problem war mit dem Format des Arrays zur Auswahl der Enkelkinder. Ich löste das, indem ich die Implode-Funktion zu dem Array hinzufügte, bevor ich es zur Auswahl von Enkeln einsetzte.

$b = implode(',', array_column($result, 'id')); 

$qry_grandchild = $db->prepare("SELECT id, post_title 
      FROM `wp_posts` 
     WHERE `post_parent` IN ($b) AND post_name not like '%revision%' "); 
$qry_grandchild->execute();