GOOGLE ADS

вторник, 10 мая 2022 г.

array_push терпит неудачу на 10-й итерации с идентичным кодом?

Я в тупике из-за этого, и никакие сообщения SO не упоминают об этом, поэтому я прошу здесь высказать некоторые мысли. По сути, у меня есть оценочный опрос с 13 вопросами, и данные хранятся в одной строке с использованием 13 столбцов (q1-q13). Я извлекаю строку, а затем перебираю каждый столбец в поисках ответов, соответствующих 3, 2 или 1. Найдя, я записываю строку в массив с помощью array_push. Это отлично работает для столбцов 1-9, но не работает на 10-м. Я скопировал/вставил каждую строку кода и внес простые изменения, так что технически каждая строка кода идентична, поэтому я не вижу причин, по которым она должна выйти из строя. Что мне здесь не хватает?

function get_POTENTIAL_List($sc_id) {
global $dbc;
$pot_list = [];
$sql = "SELECT q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13 FROM worksheetA WHERE emp_id =?";
$stmt = prepared_query($dbc, $sql, [$sc_id]);
$row = $stmt->get_result()->fetch_assoc();

Затем я использую этот код для построения массива:

if($row['q1'] == "3" || $row['q1'] == "2" || $row['q1'] == "1") {
$pot_info = array('id' => "1", 'category_title' => "INTRAPERSONAL/INTERPERSONAL", 'scale' => $row['q1'], 'scale_def' => "Scale Definition here.");
array_push($pot_list, $pot_info);
}
if($row['q2'] == "3" || $row['q2'] == "2" || $row['q2'] == "1") {
$pot_info = array('id' => "2", 'category_title' => "INTRAPERSONAL/INTERPERSONAL", 'scale' => $row['q2'], 'scale_def' => "Scale Definition here.");
array_push($pot_list, $pot_info);
}

и так далее (успешно) до 9:

if($row['q9'] == "3" || $row['q9'] == "2" || $row['q9'] == "1") {
$pot_info = array('id' => "9", 'category_title' => "INTRAPERSONAL/INTERPERSONAL", 'scale' => $row['q9'], 'scale_def' => "Scale Definition here.");
array_push($pot_list, $pot_info);
}

А потом, на 10-м столбце перестает работать с


«Uncaught SyntaxError: неожиданный конец ввода JSON»


ошибка.

if($row['q10'] == "3" || $row['q10'] == "2" || $row['q10'] == "1") {
$pot_info = array('id' => "10", 'category_title' => "INTRAPERSONAL/INTERPERSONAL", 'scale' => $row['q10'], 'scale_def' => "Scale Definition here.");
array_push($pot_list, $pot_info);
}

Решение проблемы

Проблема найдена. Это было «длинное тире» в тестовой строке для фактического определения шкалы «scale_def», используемого для вопроса 10. Ух! Учебный урок для меня.

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...