PHP - ayuda con json y php

   
Vista:

ayuda con json y php

Publicado por daniel (1 intervención) el 28/04/2017 05:45:30
estoy tratando de convertir el resultado de una consulta sql a json para posteriormenete usarla en javascript pero, el problema es que cuando uso el json_encode() en el aray con las filas de la consulta este no me debuelve nada este es mi codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
include_once 'Db2.php'; #conexion a bd
header('Content-type: application/json');
$arrayColonias = array();
$busqueda="";
$busqueda=$MySQLiconn->query("SELECT * FROM colonias");
 
 
while ($res=$busqueda->fetch_array()) {
 
	$arrayColonias[]= $res["nombre_col"];
 
	}
 
	echo json_encode($arrayColonias);
?>


epero y me puedan ayudar
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 Lina

ayuda con json y php

Publicado por Lina (15 intervenciones) el 28/04/2017 14:35:03
Hola,

Incluye este header asi:

1
2
3
4
5
6
7
while ($res=$busqueda->fetch_array()) {
 
	$arrayColonias[]= $res["nombre_col"];
 
	}
  header('Content-type: application/json; charset=utf-8');
	echo json_encode($arrayColonias);
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

ayuda con json y php

Publicado por Daniel (2 intervenciones) el 01/05/2017 06:53:43
gracias x comentar, probe agrgando la etique head como mencionaste y no funcino, simplemente me sigue retornando vacio.

intente con este codigo y funciono aunque no se si sea correcto usar dos veces el json_encode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
include_once 'Db2.php'; #conexion a bd
#header("Content-type: application/json");
$arrayColonias = array();
$busqueda="";
$busqueda=$MySQLiconn->query("SELECT * FROM colonias");
#$row_cnt = $busqueda->num_rows;
$colonias="";
while ($res=$busqueda->fetch_array()) {
 
	$arrayColonias[]= json_encode(utf8_encode("<option value=" .$res["id_colonia"].">" .$res["nombre_col"]. "</option>"));
	//$arrayColonias[]=$res["nombre_col"];
 
	}
 
	#header("Content-type:application/json");
	echo json_encode($arrayColonias);
 
?>
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
Imágen de perfil de Lawliet

ayuda con json y php

Publicado por Lawliet zhapyro_5@hotmail.com (256 intervenciones) el 01/05/2017 07:44:56
Hola...

El problema en si radica en los resultados que te devuelve tu consulta, cuando realizas tu consulta y te devuelve caracteres extraños como por ejemplo son los acentos, cuando tu consulta regresa estos símbolos automáticamente te regresara un JSON nulo debido a que intenta convertir caracteres que no tienen la codificación UTF-8 o en su caso ISO-8859-1. Para ello solamente sera necesario establecer la codificación antes de tu consulta SQL. A continuación, te presento un ejemplo completamente funcional.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
	$conn = @mysqli_connect("localhost","root","","proyecto") OR DIE ("Error de conexión: " . mysqli_connect_error());
	mysqli_set_charset($conn, "utf8");
 
	$usuarios = [];
	$sql = "SELECT * FROM inventario_puentes";
	$result = mysqli_query($conn,$sql);
	while($row = mysqli_fetch_assoc($result)) {
		array_push($usuarios, [
			"idInventario" => $row["idInventario"],
			"estados" => $row["estados"],
			"inventario" => $row["inventario"],
			"informacion" => $row["informacion_suministrada"]
		]);
	}
 
	$json = json_encode($usuarios);
?>

Observa la línea marcada en negritas la cual se encarga de indicar la codificación de los caracteres que nos devolverá nuestra consulta.

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

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

ayuda con json y php

Publicado por Daniel (2 intervenciones) el 03/05/2017 03:43:38
wow, ahora comprendo, tienes toda la razon, funciono perfecto, gracias por la ayuda
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
Revisar política de publicidad