PHP - Error al imprimir datos de Mysql en json_encode

 
Vista:
sin imagen de perfil
Val: 16
Ha disminuido su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al imprimir datos de Mysql en json_encode

Publicado por Joe (15 intervenciones) el 23/09/2018 07:06:05
Hola a todos, espero me puedan ayudar con el siguiente problema, estoy tratando de almacenar los datos traídos de una consulta sql en un array, para despues imprimirlos en json_encode();

A continuación muestro el código que estoy utilizando para traer los datos de Mysql mediante PHP

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
31
32
33
include "conexion.php";
session_start();
if (!isset($_SESSION['tipo_usuario'])) {
    header('Location: http://localhost/controlpresupuestal/');
}
$datos = array();
$tipo = $_SESSION['tipo_usuario'];
$i = 1;
 
$consulta = "SELECT obra.nombre_obra, obra.domicilio, obra.razon_social FROM obra WHERE idobra = '$i'";
 
if($tipo <> 1){
 
    $datos['mensaje']= "ERROR";
    $datos['nombre']= "ERROR";
    $datos['domicilio']= "ERROR";
    $datos['razon_social']= "ERROR";
}
else{
    $resultado = mysqli_query($conexion, $consulta);
    if($row1 = mysqli_fetch_array($resultado)){
        $datos['Jmensaje']= 'LISTO';
        $datos['Jnombre']= $row1[0];
        $datos['Jdomicilio']= $row1[1];
        $datos['Jrazon_social']= $row1[2];
    }
 
}
 
header('Content-type: application/json; charset=utf-8');
 
echo json_encode($datos);
?>

Al ejecutar el código así como lo muestro no me imprime nada.
Y al ejecutarlo de la siguiente manera si me muestra lo que almaceno en el array $datos

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
31
32
33
<?php
include "conexion.php";
session_start();
if (!isset($_SESSION['tipo_usuario'])) {
    header('Location: http://localhost/controlpresupuestal/');
}
$datos = array();
//$id = $_POST["id"];
$tipo = $_SESSION['tipo_usuario'];
$i = 1;
 
$consulta = "SELECT obra.nombre_obra, obra.domicilio, obra.razon_social FROM obra WHERE idobra = '$i'";
 
if($tipo <> 1){
 
    $datos['mensaje']= "ERROR";
    $datos['nombre']= "ERROR";
    $datos['domicilio']= "ERROR";
    $datos['razon_social']= "ERROR";
}
else{
 
    $resultado = mysqli_query($conexion, $consulta);
    if($row1 = mysqli_fetch_array($resultado)){
        $datos['Jmensaje']= 'LISTO';
        $datos['Jnombre']= 'LISTO';
        $datos['Jdomicilio']= 'LISTO';
        $datos['Jrazon_social']= 'LISTO';
    }
}
header('Content-type: application/json; charset=utf-8');
echo json_encode($datos);
?>


Espero haberme explicado bien y me puedan ayudar con mi problema. quedo atento a sus comentarios y gracias anticipadas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error al imprimir datos de Mysql en json_encode

Publicado por xve (6935 intervenciones) el 23/09/2018 11:28:54
Hola Joe, puede ser que la consulta SQL no devuelve ningún registro, o no este bien conectado a la base de datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha disminuido su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al imprimir datos de Mysql en json_encode

Publicado por Joe (15 intervenciones) el 23/09/2018 20:20:11
Buenas tardes, la consulta estaba bien, lo que me faltaba lo pude solucionar agregando utf8_encode() a cada dato obtenido de la base de datos, la parte donde recupero los datos quedaría de la siguiente manera.


1
2
3
4
5
6
if($row = mysqli_fetch_array($resultado)){
    $datos['Jmensaje']= "LISTO";
    $datos['Jnombre']= utf8_encode($row[0]);
    $datos['Jdomicilio']= utf8_encode($row[1]);
    $datos['Jrazon_social']= utf8_encode($row[2]);
}

Con eso recupero correctamente los datos en el array $datos.


Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar