2016-06-08 60 views
0

編輯:解決添加使用的mysql_query WordPress的子孫陣列

最終被修改孫子陣列此解決自己 - 它需要之前可以在PDO使用準備功能被崩盤。


我在這裏是新來的,希望我這樣做是正確的!

我試圖實現以下的WordPress數據庫上運行的查詢:

  1. 使用MySQL PDO準備函數來檢索所選父母
  2. 的孩子的帖子使用另一個PDO準備函數來獲取孫子張貼
  3. 所有這些整合到一個單一的陣列(相同的密鑰)

據我已經得到了作爲顯示孩子,但無法新增GRA ndchildren進入陣列。這裏是代碼:

$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); 

不知道我在做什麼錯。任何幫助是極大的讚賞!

+0

感謝您的回覆 - 最初的代碼不是我自己的,所以我試圖與已經存在的內容一起工作,而不必重新編寫所有內容。我試圖增加的部分是包括孫輩。你是否建議我重寫所有東西? – WebMeister

+0

我對此表示歉意(對我而言這是一個新領域),但是您能否提供更多細節,或者可能提供與完成相關的可靠資源? P.s. - 你提到的邏輯是好的,但我仍然只得到孩子(不是孫子)。有些東西丟失或錯誤,但我無法確定它 – WebMeister

+3

請注意,'mysql_xx'函數已經過時,*已經從最新版本的PHP中移除*。如果您的代碼使用這些函數,它已經與當前的主線PHP版本不兼容。 – Spudley

回答

0

問題是用於選擇孫子的數組格式。我通過在使用它來選擇孫子之前將這個implode函數添加到數組中來解決這個問題。

$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();