У меня возникли проблемы с тем, чтобы эта функция выполнялась с расшифрованным массивом 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) убедиться, что '$ sth' действительно содержит действительный объект« PDOStatement »после того, как' prepare() 'вызван b) проверить' fetchAll() 'не возвращает' false', когда вы вызываете 'execute()' c) обрабатывать все условия ошибки, когда код не идет по счастливому пути - регистрируйте ошибки, чтобы вы могли понять, в чем проблема. –
гул ... действительно ли можно связать '?' к аргументу LIMIT SQL? Я думал, что это только для переменных. Если это правда, невозможно, чтобы ваш запрос когда-либо отправлял данные с двумя? вместо разделителя LIMIT –