2014-06-26 3 views
0

Я пытаюсь следующий код:Сделать JSon массив из MySQL Query

$order = array(); $imageURL = array(); $name = array(); 
     while($row = mysql_fetch_array($mysql->result)) { 
      $order[] = $row["order"]; 
      $imageURL[] = $row["imageURL"]; 
      $name[] = $row["name"]; 
     } 
     $res = array($order, $imageURL,$name); 
     return json_encode($res); 

Но это не выводит в формате JSON, любые идеи?

Выход:

[["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30"],["previews\/en-1-1.gif","previews\/en-1-2.gif","previews\/en-1-3.gif","previews\/en-1-4.gif","previews\/en-1-5.gif","previews\/en-1-6.gif","previews\/en-1-7.gif","previews\/en-1-8.gif","previews\/en-1-9.gif","previews\/en-1-10.gif","previews\/en-1-11.gif","previews\/en-1-12.gif","previews\/en-1-13.gif","previews\/en-1-14.gif","previews\/en-1-15.gif","previews\/en-1-16.gif","previews\/en-1-17.gif","previews\/en-1-18.gif","previews\/en-1-19.gif","previews\/en-1-20.gif","previews\/en-1-21.gif","previews\/en-1-22.gif","previews\/en-1-23.gif","previews\/en-1-24.gif","previews\/en-1-25.gif","previews\/en-1-26.gif","previews\/en-1-27.gif","previews\/en-1-28.gif","previews\/en-1-29.gif","previews\/en-1-30.gif"],["Helasd you?","Where sasaddsdam?","Weasdd!","Tasasdther","AtsaddsaBeach","Cheasd Hotel","At the Hotel","aaaaaaaaat?","At the Market","Aasdt's","Mesadasd th","Shdsdsssg","sssss","On aaaa","Do you work or study?","aaaaaaa","At tadstation","aaaaaae Gym","How doasdto\u2026?","Planning a Trip","At adsk","At the asdurant","At the Inads00e9","My Taaaog","A Meetiaaaaay adher","Tourist sdsadn Centre","Saaaaing","Aaaaaa Match","Lookaaasd","At tasda"]] 
+2

Почему вы разделили результат на 3 разных массива? –

+0

Вы возвращаетесь из функции? Если нет, попробуйте вывести его вместо этого с помощью 'echo' или' print' –

+0

@KodleeYin Я прочитал его где-то – Jake

ответ

0

Я думаю, что вы только после того, как лучше формата для работы с вашей продукцией, потому что вы в настоящее время установить его с тремя массивами, и вы будете ссылаться друг на пластинки свойства по этим массивам с помощью числового ключа.

I've reconstructed an example, что ваш первоначальный выходной базы данных будет выглядеть следующим образом:

$array = json_decode($json, true); 

$row = array(); 
list($orders, $imageURLS, $names) = $array; 
foreach($orders as $key => $val) { 
    $row[] = array(
    'order' => $val, 
    'imageURL' => $imageURLS[$key], 
    'name' => $names[$key] 
); 
} 

Так ваш код, вы должны попробовать это:

$output = array(); 
while($row = mysql_fetch_array($mysql->result)) { 
    $output[] = $row; 
} 
return json_encode($output); 

And you'll get a much easier data structure to work with. Пример:

[ 
    { 
    "order": "1", 
    "imageURL": "previews\/en-1-1.gif", 
    "name": "Helasd you?" 
    }, 
    { 
    "order": "2", 
    "imageURL": "previews\/en-1-2.gif", 
    "name": "Where sasaddsdam?" 
    } 
] 
0

Судя по комментариям к y наш оригинальный вопрос, похоже, что вы ищете:

$main_array = array() ;  


    while($row = mysql_fetch_array($mysql->result)) { 

     $res = array($row["order"], $row["imageURL"],$row["name"]); 
     $main_array[] = $res; 
    } 

    return json_encode($main_array); 
0

Выход правильный. Массив json, содержащий три json-массива. Но я думаю, вы хотите, чтобы каждый элемент был отдельным массивом/объектом, содержащим order, imageURL, name. Если это правильно, попробуйте что-то вроде:

$result = array(); 

while($row = mysql_fetch_array($mysql->result)) { 
$result[] = array("order"=>$row["order"], "imageURL" => $row["imageURL"],"name"=> $row["name"]) 
} 
$res = array($order, $imageURL, $name); 
return json_encode($result); 
Смежные вопросы