2017-06-23 79 views
0

我試圖從MySQL查詢中獲取結果。結果稍後保存在數組中,並編碼爲JSON以用於Ionic2框架。我從查詢嘗試一個簡單的SELECT *,我仍然得到同樣的錯誤「意外令牌<在JSON在0位置」如何使用MySQL PHP正確獲取SQL結果?

我懷疑我的錯誤是我的while循環中,雖然我不能找出起源。

PHP:

<?php 

header("Access-Control-Allow-Origin:http://localhost:8100"); 
header("Content-Type: application/x-www-form-urlencoded"); 
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept"); 

$datos; 
$resultados_finales; 

@$db = mysqli_connect("localhost","root","","speedomart"); 

if($db) 
{ 
     //$query = "SELECT * FROM producto"; 
     $query = "SELECT producto.codigo_barra, producto.nombre, producto.imagen, producto.precio, stock_prod.ubicacion from producto JOIN stock_prod ON stock_prod.idSup = 1 ORDER BY RAND() LIMIT 0,2"; 
     $data=mysqli_query($db,$query); 

     while($fila=mysqli_fetch_assoc($data)) 
     { 
      $codigo = $fila[0]; 
      $nombre = $fila[1]; 
      $imagen = $fila[2]; 
      $precio = $fila[3]; 
      $ubicacion = $fila[4]; 


      $resultados_finales = array("mensage"=>"algcorrecto","codigo"=>$codigo,"nombre"=>$nombre,"imagen"=>$imagen,"precio"=>$precio,"ubicacion"=>$ubicacion); 
      echo json_encode($resultados_finales); 
     } 

}else 
{ 
    $resultados_finales = array("mensage"=>"credenciales incorrectas"); 
    echo json_encode($resultados_finales); 
}; 

?> 

回答

0

我建議你使用mysqli_fetch_array()函數獲取一個結果行作爲數字數組和關聯數組。

試試看看這個代碼。

<?php 

header("Access-Control-Allow-Origin:http://localhost:8100"); 
header("Content-Type: application/x-www-form-urlencoded"); 
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept"); 

$datos; 
$resultados_finales; 

@$db = mysqli_connect("localhost","root","","speedomart"); 

if($db) 
{ 
     //$query = "SELECT * FROM producto"; 
     $query = "SELECT producto.codigo_barra, producto.nombre, producto.imagen, producto.precio, stock_prod.ubicacion from producto JOIN stock_prod ON stock_prod.idSup = 1 ORDER BY RAND() LIMIT 0,2"; 
     $data=mysqli_query($db,$query); 

     while($fila=mysqli_fetch_array($data)) 
     { 
      $codigo = $fila[0]; 
      $nombre = $fila[1]; 
      $imagen = $fila[2]; 
      $precio = $fila[3]; 
      $ubicacion = $fila[4]; 


      $resultados_finales[] = array("mensage"=>"algcorrecto","codigo"=>$codigo,"nombre"=>$nombre,"imagen"=>$imagen,"precio"=>$precio,"ubicacion"=>$ubicacion); 

     } 
    echo json_encode($resultados_finales); 
}else 
{ 
    $resultados_finales = array("mensage"=>"credenciales incorrectas"); 
    echo json_encode($resultados_finales); 
}; 

?> 
+0

它工作。小心解釋爲什麼fetch_array更好? –

+1

mysqli_fetch_array()函數將結果行作爲關聯數組或數組數組或兩者獲取。 –