我無法使用解碼的json數組運行此函數。 例如,我試圖用PDO準備語句獲取數組: *注意:$user
與解碼的json數組一起傳遞。PDO fetchAll,獲取並將其與解碼的JSON數組一起使用
public function get_pagnated_qs($user){
////////////////////////Actual
$sth = $this->dbh->prepare("SELECT a.quest_id, a.quest_title, a.quest_desc, b.qcat_name,c.qtype_title FROM eq_question_s AS a INNER JOIN eq_question_category AS b ON a.qcat_id = b.qcat_id INNER JOIN eq_question_type AS c ON a.qtype_id=c.qtype_id ORDER BY quest_id LIMIT ?, ?");
$sth->execute(array($user->start, $user->per_page));
$result = json_encode($sth->fetchAll());
return $result;
}
它不會產生對象(我發現,當我呼應javasccript側的對象。
在另一方面,如果我與實際數量代替兩個?
(即0,3
),那麼一切都將工作完美。
功能是作爲編碼的JSON返回$結果返回給客戶端處理和格式轉換成表格。
我不知道這段代碼有什麼錯?
讓我們假設我已經正確解碼了json數組作爲對象,否則會有太多的代碼讓我們感到沮喪。
也許只是一些見解將有所幫助,但我不想挫敗任何人。
客戶端JS其採取的實際回報和產生形式(部分功能)是:
function showListOfPaginatedQuestions(jsonData) {
alert('pagED RAN!');
alert(jsonData);
console.log(jsonData);
var table = '<table width="600" cellpadding="5" class="table table-hover table-bordered"><thead><tr><th scope="col">Category</th><th scope="col">Type</th><th scope="col">Question</th><th scope="col">Question Description</th><th scope="col"></th></tr></thead><tbody>';
$.each(jsonData, function(index, user){
table += '<tr>';
table += '<td class="edit" field="qcat_id" user_id="'+user.quest_id+'">'+user.qcat_name+'</td>';
});
$('div#content').html(table);
}
謝謝
你可以試試'的var_dump($用戶)'當與'start'一個對象,'per_page'比沒關係,否則還有另一個問題。 – Haneev
你應該永遠不要假設你的查詢有效。你應該a)在調用prepare()後確認'$ sth'實際上包含了一個有效的'PDOStatement'對象b)當你調用execute()時,驗證'fetchAll()'不返回'false'c)處理所有的錯誤條件,當代碼不在快樂的路徑上時 - 記錄錯誤,以便您可以看到問題所在。 –
哼哼......真的有可能綁定'?'到SQL的LIMIT參數?我認爲這只是變量。如果這是真的,那麼你的查詢不可能用兩個數據發回任何數據?代替LIMIT分隔符 –