디코딩 된 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);
}
당신이 준비된 문에 대해 이해해야 거기에 뭔가 당신
: P
직전 변수에 할당 괜찮습니다. 그렇지 않으면 또 다른 문제가 있습니다. – Haneev
당신은 단지 쿼리가 작동한다고 가정해서는 안됩니다. b)'execute()'를 호출 할 때'fetchAll()'이'false'를 반환하지 않는지 확인하십시오.) c) 'prepare()'가 호출 된 후에'$ sth'에 실제로 유효한'PDOStatement' 객체가 있는지 확인하십시오. 코드가 행복한 경로에 있지 않을 때 모든 오류 조건을 처리하십시오 - 오류를 기록하면 문제가 무엇인지 알 수 있습니다. –
험 ... '?'을 묶는 것이 실제로 가능합니까? SQL의 LIMIT 인수에? 나는 그것이 변수만을위한 것이라고 생각했다. 그것이 사실이라면 쿼리가 2 개의 데이터를 다시 전송할 수 없습니까? LIMIT 구분 기호 대신 –