Я сохранил динамическое значение в массиве и конвертировал json с помощью json_encode, после преобразования значения am print json, но какое-то значение возвращает значение null, но я печатаю значение массива, он отображается правильно, что я могу сделать, PLS мне поможет.
Мое кодирование выглядит следующим образом:
header('Content-type: application/json');
$return=array();
$level=$_REQUEST['level'];
$sql="SELECT * FROM guess WHERE level=$level";
$res = $st->query($sql);
if($res->num_rows>=1){
$images=array();
while($row= $res->fetch_assoc())
{
$images[]=$row;
}
$return['list']=$images;
}
echo json_encode($return);
Мой вывод в json,
{"list":[{"id":"1","type":"text","question":null,"answer":"feed"}]
в массиве,
[list] => Array
(
[0] => Array
(
[id] => 1
[type] => text
[question] => WHAT CHARITY Christian organization committed to feeding Gods children hungry in body and spirit?
[answer] => feed
)
)
используйте функцию mysql IFNULL
и измените свой sql-запрос - так что вам не нужно писать дополнительный PHP-код, так как функция ifnull возвращает второй параметр (желаемую строку), если значение первого параметра (вопроса) равно null
SELECT col1, col2, IFNULL(question, 'WHAT CHARITY Christian organization committed to feeding God\s children hungry in body and spirit?') as question FROM guess WHERE level=$level
для получения дополнительной информации о функции ifnull - щелкните, чтобы прочитать
json_encode ожидает, что строки в данных будут закодированы как UTF-8.
header('Content-type: application/json');
$return=array();
$level=$_REQUEST['level'];
$sql="SELECT * FROM guess WHERE level=$level";
$res = $st->query($sql);
if($res->num_rows>=1){
$images=array();
while($row= $res->fetch_assoc())
{
$images[]['id']= ($row['id']);
$images[]['type']= ($row['type']);
$images[]['question']= utf8_encode($row['question']);//Convert this to UTF-8
$images[]['answer']= ($row['answer']);
}
$return['list']= $images;
}
echo json_encode($return);