2016-04-25 1 views
-2

Я пытаюсь извлечь данные из базы данных и преобразовать их в данные Json.Невозможно извлечь данные из базы данных и преобразовать их в данные Json

У меня есть таблица с идентификатором, изображением, именем и ценой продукта. Я хочу преобразовать эти данные в Json, а затем извлечь их на свой сайт.

<?php 
//config is the file where i used to connect php to db 

include_once('config.php'); 

// images is my table name 
$sql= "SELECT * FROM `images` "; 

$res= mysql_query($sql); 

$result = array(); 

while ($row = mysql_fetch_array($res)) 

//image is stored as longbob, name as varchar and price as int 

array_push($result, array('id'=> $row[0], 
          'image' = > $row[1], 
          'name'=> $row[2], 
          'price'=> $row[3] 
)) 




echo json_encode(array()); 




?> 
+0

В чем проблема? put $ result внутри json_encode, например echo json_encode ($ result); –

ответ

0

Вам не нужен массив_push. Просто продолжайте массив и выполните следующие действия:

<?php 
//config is the file where i used to connect php to db 

include_once('config.php'); 

// images is my table name 
$sql= "SELECT * FROM `images` "; 

$res= mysql_query($sql); 
$result=array(); 
while (($row = mysql_fetch_array($res))!==false) 
{ 
    //image is stored as longbob, name as varchar and price as int 
    $result[] = array('id'=> $row[0], 
         'image' = > $row[1], 
         'name'=> $row[2], 
         'price'=> $row[3], 
         'error'=>false, 
         'error_message'=>'' 
       )); 

} 

if(count($result)>0) 
    echo json_encode($result); 
else 
    echo json_encode(array(array('error'=>true,'error_message'=>'No Images'))); 
?> 

Я думаю, вы хотите, чтобы это было в AJAX правильно? Если вы будете использовать в ajax, просто положите exit; на последнюю строку вашего кода.

Я также добавляю вам объект ошибки, вы можете отлаживать свой код или просто проверять, существуют ли данные или нет.

0

Ну, попробуйте это после выполнения запроса

$result = array(); 
while ($row = mysql_fetch_array($res)) 
{ 
    //image is stored as longbob, name as varchar and price as int 
    $result[] = array('id'=> $row[0], 
         'image' = > $row[1], 
         'name'=> $row[2], 
         'price'=> $row[3] 
       )); 

} 
echo json_encode($result); 

Вы должны кодировать $result, а не array().

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