2013-05-11 3 views
0

У меня есть данные в моей базе данных, какJSON выход из PHP

COl1  | COL2 
fruit  | apple, grape, berry 
vegetable | tom, pot, leaf 

Если я запрашиваю для фруктов, я хочу COL2 прочитать для запроса и данные расщепляются и выход echo json_encode($data) должен быть в форме:

[ 
    {input: "fruit", target: "apple"}, 
    {input: "fruit", target: "grape"}, 
    {input: "fruit", target: "berry"} ] 

Любые предложения?

+0

какой-то причине Я чувствую, что ваша база данных не соответствует никаким нормам нормализации. – Dinesh

+0

Всегда предоставляйте информацию о том, что вы пробовали. Потому что вы не узнаете, пока не попытаетесь что-либо предпринять. Это говорит о том, что вам нужно пройти итерацию через db строки взрывают ваши значения и присваивают новый массив, а затем отправляют его в json_decode – Dinesh

+0

Конечно, помидоры тоже плоды :) –

ответ

2

Если у вас есть вопрос, как форматировать значение col2 в вашем целевом формате JSON. затем сделать это как

$dbval = "apple, grape, berry"; 
$fruits = explode(",",$dbval); 

$json = array(); 

foreach($fruits as $fruit) { 

    $json[] = array("input"=>"fruit","target"=>$fruit); 

} 

echo json_encode($json) 

извините, если я получил вопрос неправильно.

0

Вы должны подумать о своем дизайне базы данных. Что вы думаете о таблицах, как:

category 
- id 
- name (e.q. fruit or vegetable) 

food 
- id 
- name (e.q. apple, tom, pot, leaf, ...) 

food_has_category 
- id (if necessary) 
- category_id 
- food_id 

Если вы не можете редактировать базу данных, попытаться взорвать строки, изменять массивы, как вы хотите, и кодировать их в формате JSON: http://php.net/manual/de/function.explode.php