0

Tengo este código en php para que muestre los datos ingresados, solo muestra algunos no todos, lo que es id_evento, descripcion_evento y valor que son los campos en la BD los muestra correctamente, pero datos como titulo_evento no los muestra.

<?php
  include "conexion.php";
  $data=array();
  $q=mysqli_query($con,"select valor from `Evento`");
  while ($row=mysqli_fetch_object($q)){
    $data[]=$row;
  }
  echo json_encode($data);
?>

Estos son los datos de la BD

introducir la descripción de la imagen aquí

Manuco Bianco
  • 1,207
  • 8
  • 14
  • 23
  • no queda claro lo que quieres decir. La foto que subes de la bbdd no muestra nada, por lo que ese codigo no debe mostrarte ningun dato. Por otra parte, tu consulta es sobre un campo (valor), no sobre los demas... Has probado esa consulta directamente en bbdd, a ver que te devuelve? – Jakala Oct 10 '18 at 21:13
  • Tiene datos ingresados, al realizar la consulta directamente me muestra los datos que solicito, pero al hacerlo en el json no. – Jorman Pantevez Oct 10 '18 at 21:15
  • Cambia tu linea de hacer consulta por esta: `$q=mysqli_query($con,"select valor fromEvento") or die(mysqli_error($con));`, para ver si realmente te recoje datos $q o si por el contrario tienes algun error en la consulta. – Jakala Oct 10 '18 at 21:18
  • Ya la cambié, sigue sin mostrar nada al consultar el titulo. Ya actualicé la foto de la BD – Jorman Pantevez Oct 10 '18 at 21:21
  • Ok. ejecuta un `print_r($data)` antes del echo de json_encode, y mira si llega con datos ahi. Si no tienes datos, entonces podemos pensar que en el bucle hay algo raro. Si por el contrario tienes datos, algo pasa con la funcion json_encode – Jakala Oct 10 '18 at 21:26
  • Afortunadamente si están los datos. Array ( [0] => stdClass Object ( [titulo] => X Jornada de Software Libre ) ) Array ( [0] => stdClass Object ( [titulo] => X Jornada de Software Libre ) [1] => stdClass Object ( [titulo] => Jornada de Donaci�n de Sangre ) ) – Jorman Pantevez Oct 10 '18 at 21:27
  • Tienes un problema con la codificación, lo demuestra el carácter inspector � que aparece en los datos. [Conviene que hagas una revisión por niveles](https://es.stackoverflow.com/a/59510/29967), unificando y colocando en cada nivel la codificación adecuada. El problema es que los caracteres extraños como � rompen el JSON. – A. Cedano Oct 10 '18 at 21:44
  • aparte de lo comentado por @A.Cedano, te recomiendo que cambies tu lectura de cada registro por `mysqli_fetch_array`. De esta manera tu array sera de arrays asociativos en lugar de objetos. – Jakala Oct 10 '18 at 22:05
  • Retomando el comentario de @A. Cedano Intenta poner al después del include de tu conexión `mysqli_set_charset( $con, 'UTF-8' )` Eso debería formatear tus cadenas con caracteres latinos. Intenta complementar la solución con lo que te dijo Jakala – Alberto Siurob Oct 10 '18 at 22:22
  • No funciona el formateo para caracteres latinos, pero ya solucioné el problema. – Jorman Pantevez Oct 10 '18 at 22:35
  • 1
    El formateo (codificación es más correcto) debe hacerse por niveles, [como se indica aquí](https://es.stackoverflow.com/a/59510/29967), para dar una solución global al problema, llegando hasta su raíz. En cualquier caso, en atención al resto de la comunidad, no basta con que digas *ya resolví el problema*. Di cuál ha sido la solución ya que otros se han interesado en ayudarte. – A. Cedano Oct 10 '18 at 22:41

0 Answers0