Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: geshiro en 16 Mayo 2016, 04:49 am



Título: notacion JSON error
Publicado por: geshiro en 16 Mayo 2016, 04:49 am
tengo una duda cuando me regresa la consulta mi notacion json me da asi
Código
  1. [{"product":"TEST_1","best_selling_product":"305"},{"product":"IPHONE 4S","best_selling_product":"108"}]

pero la notacion deberia ser
Código
  1.  [{"product":"TEST_1","best_selling_product":305},{"product":"IPHONE 4S","best_selling_product":108}]

Código
  1.  function best_selling_product(){
  2. $sql = "SELECT product,SUM(sale_detail.amount) AS best_selling_product FROM sale_detail INNER JOIN product ON sale_detail.idproduct = product.idproduct GROUP BY sale_detail.idproduct ORDER BY SUM(sale_detail.amount) DESC LIMIT 0,5";
  3. $result = $this->conexion->conexion->query($sql);
  4. $array = array();
  5. while($record = $result->fetch_array(MYSQLI_ASSOC)){
  6. $array[] = $record;
  7. }
  8. return $array;
  9. $this->conexion->cerrar();
  10. }
  11.  


Título: Re: notacion JSON error
Publicado por: moikano→@ en 18 Mayo 2016, 10:10 am
Hola.

Que tipo de campo tienes asignado para esa columna?

Debería ser int, aún así si no te marca el campo a integer al pasarlo a valor en un array de php siempre puedes forzar el tipo.

Código
  1. function best_selling_product(){
  2. $sql = "SELECT product,SUM(sale_detail.amount) AS best_selling_product FROM sale_detail INNER JOIN product ON sale_detail.idproduct = product.idproduct GROUP BY sale_detail.idproduct ORDER BY SUM(sale_detail.amount) DESC LIMIT 0,5";
  3. $result = $this->conexion->conexion->query($sql);
  4. $array = array();
  5. while($record = $result->fetch_array(MYSQLI_ASSOC)){
  6.                                $record["campo_int"] = (int)$record["campo_int"];
  7. $array[] = $record;
  8. }
  9. return $array;
  10. $this->conexion->cerrar();
  11. }