2017-06-23 49 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()函数将结果行作为关联数组或数组数组或两者获取。 –