Как вывести данные из базы в формате JSON [дубликат]

99
12 августа 2019, 08:00

На данный вопрос уже ответили:

  • Вывести из базы mysql в виде json массива. 2 ответа

Вывожу данные из базы в виде "JSON"

echo '[';
$sql = mysqli_query($link, 'SELECT `id`, `category`, `cb_title` FROM `catalog` LIMIT 0,3');
while ($result = mysqli_fetch_array($sql)) {
$string = "{\"title\":\"{$result['cb_title']}\",\"hasAd\":false},";
}
echo ']';

На выходе получаю строки

[{"title":"{$result['cb_title']}","hasAd":false},
{"title":"{$result['cb_title']}","hasAd":false},
{"title":"{$result['cb_title']}","hasAd":false},]

Как удалить запятую перед закрывающим ,]?

Использовал $string = rtrim($string, ','); - удаляет все запятые после всех false},

Спасибо!

Answer 1

Например так

echo substr($string,0,-1); или echo substr($string,0,-2).']';

или так

while ($result = mysqli_fetch_array($sql)) {
    $string[] = "{\"title\":\"{$result['cb_title']}\",\"hasAd\":false}";
}
echo implode(',',$string);
Answer 2

Для этого есть более правильное решение, а именно использование json_encode. И не нужно никаких обрезаний строк.

$sql = mysqli_query($link, 'SELECT `id`, `category`, `cb_title` FROM `catalog` LIMIT 0,3');
while ($result = mysqli_fetch_array($sql)) {
    $array[] = array('title' => $result['cb_title'], 'hasAd' => false);
}
$result = json_encode($array);
READ ALSO
Построить дерево из строк

Построить дерево из строк

Подскажите, пожалуйста, как построить дерево из строк? Имеется массив:

111
Перехватить адрес в joomla

Перехватить адрес в joomla

Нужно настроить работу роутера в джумла таким образом, что бы, если мы заходим по адресу siteru?iffjj=3 адрес в адресной строке сохранялся, не редиректило,...

115
Не корректные байты в xml

Не корректные байты в xml

При загрузке xml страницы в браузере выдает ошибку error on line 62164 at column 28: Input is not proper UTF-8, indicate encoding ! Bytes: 0x0F 0xE2 0x80 0x93

134
Laravel Curl Error: SSL read: errno -5961

Laravel Curl Error: SSL read: errno -5961

Обращаюсь к api через curl и иногда приходит вот такая ошибка: (SSL read: errno -5961)

97