Foros del Web » Programando para Internet » PHP »

Errores con json

Estas en el tema de Errores con json en el foro de PHP en Foros del Web. hola, disculpen, no entiendo bien en que foro ira mi pregunta, pero almenos estoy trabajando con php y javascript. Mi pregunta es la siguiente: Genero ...
  #1 (permalink)  
Antiguo 22/11/2012, 13:44
Avatar de Gerardo12  
Fecha de Ingreso: octubre-2012
Ubicación: Veracruz,Veracruz
Mensajes: 12
Antigüedad: 11 años, 5 meses
Puntos: 0
Errores con json

hola, disculpen, no entiendo bien en que foro ira mi pregunta, pero almenos estoy trabajando con php y javascript.

Mi pregunta es la siguiente:

Genero una consulta a mi base de datos y esta es a traves del mysql_fetch_array, y esos datos son almacenados en un areglos convirtiendolo a la vez en un json para despues emplearlo, el problema que presento es que con el json no se leen los acentos o algun otro caracter especial, es posible dejarlo solo como arreglo y despues mandarlo a llamar como arreglo.


Código PHP:
Ver original
  1. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  2.         $orders[] = array(
  3.             'nombre'     => $row['nombre'],
  4.             'grado'      => $row['grado'],
  5.             'area'       => $row['area'],
  6.         );
  7.     }

Aqui es donde mando a llamar al json

Código Javascript:
Ver original
  1. datatype: "json",
  2.                 datafields: [
  3.                      { name: 'nombre'},
  4.                      { name: 'grado'},
  5.                      { name: 'area'},
  6.  
  7.                 ],
  8. url: 'data.php',

la verdad siento que yo solo me estoy complicando la vida pero podrian ayudarme, lo que pasa es que no me acepta caracteres especiales al momento de mostrar mi tabla, solo arorra valores nulos. y los datos que no contienen caracteres especiales sin son mostrados.

que debo hacer para visualizar tambien estos datos (con caracteres especiales).
  #2 (permalink)  
Antiguo 22/11/2012, 13:46
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años
Puntos: 137
Respuesta: Errores con json

Usas json_encode? si es así esta es la solución
  #3 (permalink)  
Antiguo 22/11/2012, 14:11
Avatar de Gerardo12  
Fecha de Ingreso: octubre-2012
Ubicación: Veracruz,Veracruz
Mensajes: 12
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Errores con json

ok muchas gracias por la respuesta lo empleo asi:

Código PHP:
Ver original 

pero me arroja un error diciendo: Use of undefined constant utf8_encode - assumed 'utf8_encode'


no se a que se deba, me podrias orientar por favor te lo agradeceria muchisimo
  #4 (permalink)  
Antiguo 22/11/2012, 14:17
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años
Puntos: 137
Respuesta: Errores con json

Olvide los quotes XD
Código PHP:
Ver original
  1. json_encode(array_map("utf8_encode",$array));
  #5 (permalink)  
Antiguo 22/11/2012, 15:12
Avatar de Gerardo12  
Fecha de Ingreso: octubre-2012
Ubicación: Veracruz,Veracruz
Mensajes: 12
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Errores con json

No te preocupes suele suceder olvidar algunos detalles.

Oie ya siento que exagero pero sigo con un error,

utf8_encode() expects parameter 1 to be string, array given.

ese es el error que muestra y la neta no le entiendo. lo empleo como tu me muestras pero sigue mostrando el error.

Código PHP:
Ver original
  1. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  2.         $orders[] = array(
  3.             'nombre'     => $row['nombre'],
  4.             'grado'      => $row['grado'],
  5.             'area'       => $row['area'],
  6.             'categoria'  => $row['categoria'],
  7.             'estado'     => $row['estado'],
  8.             'centro'     => $row['centro'],
  9.             'proyecto'   => $row['proyecto'],
  10.             'perfil'     => $row['perfil']
  11.         );
  12.     }
  13.     echo json_encode(array_map("utf8_encode",$orders));


pero ya no se que hacer ya que no me muestra nada solo el error descrito anteriormente
  #6 (permalink)  
Antiguo 22/11/2012, 18:20
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años
Puntos: 137
Respuesta: Errores con json

ah, es que es asociativo, entonces prueba con esto
Código PHP:
Ver original
  1. foreach($orders as &$order){
  2.      array_map("utf8_encode",$order);
  3. }
  4. json_encode($orders);
  #7 (permalink)  
Antiguo 23/11/2012, 10:08
Avatar de Gerardo12  
Fecha de Ingreso: octubre-2012
Ubicación: Veracruz,Veracruz
Mensajes: 12
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Errores con json

Muchisimas gracias por estar contestando igual e estado investigando y me encuentro con los mismos ejemplos, que tu me has estado proporcionando peor ahora si ya no se que estoy haciendo mal, por que enverdad me sigue arrojando como valores nulos, aquellos campos que tienen un acento o algun otro caracter especial.

parte de mi resultado que me muestra:
{"nombre":null,"grado":null,"area":"Hardware"}

Código PHP:
Ver original
  1. $query = "SELECT concat (rh.nombre, ' ' ,rh.apellidos) AS nombre, rh.grado AS grado, rh.area AS area, rh.categoria AS categoria,
  2.               dis.estado AS estado, pl.centro AS centro, pl.proyecto AS proyecto, pl.perfil AS perfil  FROM recursoshumanos rh INNER JOIN disponibilidad dis
  3.               ON rh.clave_rh=dis.clave_rh INNER JOIN participacion_lania pl ON rh.clave_rh=pl.clave_rh";
  4.    
  5.  
  6.     $result = mysql_query($query) or die("SQL Error 1: " . mysql_error());
  7.     $orders = array();
  8.     // get data and store in a json array
  9.     while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  10.         $orders[] = array(
  11.             'nombre'     => $row['nombre'],
  12.             'grado'      => $row['grado'],
  13.             'area'       => $row['area'],
  14.             'categoria'  => $row['categoria'],
  15.             'estado'     => $row['estado'],
  16.             'centro'     => $row['centro'],
  17.             'proyecto'   => $row['proyecto'],
  18.             'perfil'     => $row['perfil']
  19.         );
  20.     }

El codigo anterior muestra loq eu es la consulta y como la guardo en el arreglo, pero la verdad ya no se que es loq eu estoy haciendo mal de acuerdo al codigo que me pasastes entiendo que

Código PHP:
Ver original
  1. foreach($orders as &$order){
  2.      array_map("utf8_encode",$order);
  3. }
  4. json_encode($orders);

entiendo que al imprimir se imprimiria el alias "$order", si lo hago de esta forma solo me muestra los valores que no tienen ningun caracter.
y si empleo el "$orders" me muestra todos los registros pero con valores nulos, muchisims gracias por estar ayudandome.
  #8 (permalink)  
Antiguo 23/11/2012, 13:11
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años
Puntos: 137
Respuesta: Errores con json

si imprimes los datos normalemente
Código PHP:
Ver original
  1. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  2.     print_r($row);
  3. }
los acentos y caracteres especiales si se imprimen?? si te sale otra cosa seria cuestión de la DB

Etiquetas: errores, json, mysql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:21.