2012-08-31 30 views
0

好的,所以我有一個PHP響應GET HTTP請求;這個PHP腳本調用數據庫,並檢索一組行。Backbonejs只在PHP上獲取一條記錄JOIN

$results = $db->pdoquery("SELECT * FROM posts JOIN users ON posts.user_id=users.id ORDER BY posts.cre DESC LIMIT 4"); 
    $json = json_encode($results); 
    echo $json; 

現在,當我使用backbonejs'.fetch'命令時,它只返回1個第一個記錄,而不是四個。

如果我改變PHP腳本我得到的所有四個,但是我不得不失去我的JOIN

$results = $db->pdoquery("SELECT * FROM posts ORDER BY posts.cre DESC LIMIT 4"); 
    $json = json_encode($results); 
    echo $json; 

任何人都可以解釋我做錯了嗎?

UPDATE: 的JSON的PHP頁面打印

[{"id":"7","post_name":"title","pretty_url":"link1","preface":"a preface 7","body_text":"a body","feat":"0","img":"\/img\/logo.png","cre":"2012-07-22","modi":"2012-07-18","user_id":"2"},{"id":"6","post_name":"title","pretty_url":"link","preface":"a preface 6","body_text":"a body1","feat":"0","img":"\/img\/logo.png","cre":"2012-07-21","modi":"2012-07-18","user_id":"2"},{"id":"5","post_name":"TestTitle 1","pretty_url":"testlink4","preface":"a preface 5","body_text":"a body 2","feat":"0","img":"\/img\/logo.png","cre":"2012-07-20","modi":"2012-07-16","user_id":"2"},{"id":"4","post_name":"TestTitle 1","pretty_url":"testlink3","preface":"a preface 4","body_text":"a body 3","feat":"0","img":"\/img\/logo.png","cre":"2012-07-19","modi":"2012-07-16","user_id":"2"}] 
+0

如果直接通過數據庫執行此查詢會發生什麼情況SELECT * FROM posts JOIN users on posts.user_id = users.id ORDER BY posts.cre DESC LIMIT 4'? – fguillen

+0

查詢返回所有4行。 PHP頁面也打印出一個json數組。 –

+0

你能告訴我們結果'json'嗎? (更新你的問題) – fguillen

回答

0

我發現這個問題。

帖子和用戶具有相同名稱的列,主要是'id',並且由於這四個帖子記錄具有相同的user_id,所以'id'列被設置爲相同的值。

骨幹必須有內置的東西,跳過它認爲是相同的記錄或類似的東西。簡單地描述我需要更詳細地解決問題。

不管固定它的代碼如下

 $results = $db->pdoquery("SELECT 
     posts.post_name, posts.pretty_url, posts.preface, posts.img, posts.cre, posts.modi, users.username 
     FROM posts 
      JOIN users 
       ON posts.user_id=users.id 
       ORDER BY posts.cre 
       DESC LIMIT 4"); 
    $json = json_encode($results); 
    echo $json; 

感謝大家,幫助雖然。