2014-11-06 3 views
-1

Прямо сейчас я создаю JSON Arraya вручную (это означает, что поле за полем):Создание JSON-массив из MySQL-таблицы

$cats =  $paed_db->prepare('SELECT * FROM table ORDER BY id ASC'); 
$array_cat = array(); 
while($cat = $cats->fetch(PDO::FETCH_OBJ)) { 
    $array_cat = array("id" => $cat->id, "content" => $cat->content, "parent" => $cat->parent); 
} 
echo json_encode($array_cat); 

Можно ли создать массив в общем виде? Я имею в виду, что в таблицах есть разные поля (имена и количество полей), но этот код должен работать для всех таблиц.

Я хотел бы использовать это для создания нескольких массивов для нескольких таблиц.

+2

'json_encode ($ cats-> fetchAll())'? –

+0

нет общего пути, вам нужно закодировать его соответственно тому, что вы действительно хотите. и, кстати, это должно быть '$ array_cat [] ='. это вызывает множество значений внутри. тот, который вы используете, перезаписывает каждую итерацию. – Ghost

+0

Невозможно сделать это с помощью цикла foreach и ключа/значения или чего-то подобного? – user3142695

ответ

0

Попробуйте -

$array_cat = array(); 
while($cat = $cats->fetch(PDO::FETCH_OBJ)) { 
    $array_cat[] = (array) $cat; 
} 
echo json_encode($array_cat); 
+0

Извините, я имею в виду, что я не знаю, сколько и какие поля находятся в запросе. id, content и parent - пример. Может быть что-то еще ... – user3142695

+0

обновил мою помощь. –

Смежные вопросы