Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Me da error de funcion

Estas en el tema de Me da error de funcion en el foro de PHP en Foros del Web. Hola, tengo este código y me da error: Código PHP: < b > Fatal error </ b >:   Call to undefined  function:  json_encode ()  in  </ b >  ...
  #1 (permalink)  
Antiguo 12/07/2013, 09:19
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 11 años, 6 meses
Puntos: 10
Me da error de funcion

Hola, tengo este código y me da error:
Código PHP:
<b>Fatal error</b>:  Call to undefined function: json_encode() in </bon line <b>174</b><br /> 
En la linea 174 esta:

Código PHP:
 echo json_encode($datos); 
Y el cod es:

Código PHP:
<?php  
include("Connections/wedserver2012.php");
if (
$_GET["action"] == "listar"

    
// valores recibidos por POST 
    
$vte $_POST['telefonos']; 
    
$ape $_POST['apellidos'];
    
$name $_POST['name'];
    
$dni $_POST['dni']; 
    
$calle $_POST['calle']; 
    
$movil $_POST['movil'];
    
$loca $_POST['localidad'];
    
if ( ! empty(
$vte)) { 
$sql ="(SELECT 0 as qnum,A.id_aviso,A.telefonos,A.telefonos3,A.movil,A.dni,A.name,A.apellidos,B.localidad,B.calle
 
FROM clientes A,dir_clientes B WHERE A.id_aviso=B.id_aviso AND B.calle != '' AND  A.telefonos='$vte')
 
UNION ALL
 
(SELECT 1 as qnum,id_aviso,telefonos,telefonos3,movil,dni,name,apellidos,localidad,calle
 
FROM avisos WHERE telefonos='$vte' )
 
UNION ALL
 
(SELECT 2 as qnum,U.id_aviso,U.telefonos,U.telefonos3,U.movil,U.dni,U.name,U.apellidos,D.localidad,D.calle
 
FROM usuarios U,dir_usuarios D WHERE  U.id_aviso=D.id_aviso AND D.calle != ''AND  U.telefonos='$vte')"
;
}
if ( ! empty(
$movil)) { 
$sql ="(SELECT 0 as qnum,A.id_aviso,A.telefonos,A.telefonos3,A.movil,A.dni,A.name,A.apellidos,B.localidad,B.calle
 
FROM clientes A,dir_clientes B WHERE A.id_aviso=B.id_aviso AND B.calle != '' AND  A.movil='$movil')
 
UNION ALL
 
(SELECT 1 as qnum,id_aviso,telefonos,telefonos3,movil,dni,name,apellidos,localidad,calle
 
FROM avisos WHERE movil='$movil' )
 
UNION ALL
 
(SELECT 2 as qnum,U.id_aviso,U.telefonos,U.telefonos3,U.movil,U.dni,U.name,U.apellidos,D.localidad,D.calle
 
FROM usuarios U,dir_usuarios D WHERE  U.id_aviso=D.id_aviso AND D.calle != ''AND  U.movil='$movil')"
;
}
if ( ! empty(
$dni)) { 
$sql ="(SELECT 0 as qnum,A.id_aviso,A.telefonos,A.telefonos3,A.movil,A.dni,A.name,A.apellidos,B.localidad,B.calle
 
FROM clientes A,dir_clientes B WHERE A.id_aviso=B.id_aviso AND B.calle != '' AND  A.dni='$dni')
 
UNION ALL
 
(SELECT 1 as qnum,id_aviso,telefonos,telefonos3,movil,dni,name,apellidos,localidad,calle
 
FROM avisos WHERE dni='$dni' )
 
UNION ALL
 
(SELECT 2 as qnum,U.id_aviso,U.telefonos,U.telefonos3,U.movil,U.dni,U.name,U.apellidos,D.localidad,D.calle
 
FROM usuarios U,dir_usuarios D WHERE  U.id_aviso=D.id_aviso AND D.calle != ''AND  U.dni='$dni')"
;
}
if ( ! empty(
$calle)) { 
$sql ="(SELECT 0 as qnum,A.id_aviso,A.telefonos,A.telefonos3,A.movil,A.dni,A.name,A.apellidos,B.localidad,B.calle
 
FROM clientes A,dir_clientes B WHERE A.id_aviso=B.id_aviso AND B.calle != '' AND  B.calle like '%$calle%')

UNION ALL
 
(SELECT 1 as qnum,id_aviso,telefonos,telefonos3,movil,dni,name,apellidos,localidad,calle
 
FROM avisos WHERE calle like '%$calle%')
 
UNION ALL

(SELECT 2 as qnum, U.id_aviso,U.telefonos,U.telefonos3,U.movil,U.dni,U.name,U.apellidos,D.localidad,D.calle
 
FROM usuarios U,dir_usuarios D WHERE  U.id_aviso=D.id_aviso AND D.calle != ''AND  D.calle like '%$calle%')"
;
}

if ( ! empty(
$ape)) { 
$sql ="(SELECT 0 as qnum,A.id_aviso,A.telefonos,A.telefonos3,A.movil,A.dni,A.name,A.apellidos,B.localidad,B.calle
 
FROM clientes A,dir_clientes B WHERE A.id_aviso=B.id_aviso AND B.calle != '' AND  A.apellidos like '%$ape%')

UNION ALL
 
(SELECT 1 as qnum,id_aviso,telefonos,telefonos3,movil,dni,name,apellidos,localidad,calle
 
FROM avisos WHERE apellidos like '%$ape%')
 
UNION ALL

(SELECT 2 as qnum, U.id_aviso,U.telefonos,U.telefonos3,U.movil,U.dni,U.name,U.apellidos,D.localidad,D.calle
 
FROM usuarios U,dir_usuarios D WHERE  U.id_aviso=D.id_aviso AND D.calle != ''AND  U.apellidos like '%$ape%')"
;
}
if ( ! empty(
$name)) { 
$sql ="(SELECT 0 as qnum,A.id_aviso,A.telefonos,A.telefonos3,A.movil,A.dni,A.name,A.apellidos,B.localidad,B.calle
 
FROM clientes A,dir_clientes B WHERE A.id_aviso=B.id_aviso AND B.calle != '' AND  A.name like '%$name%')

UNION ALL
 
(SELECT 1 as qnum,id_aviso,telefonos,telefonos3,movil,dni,name,apellidos,localidad,calle
 
FROM avisos WHERE name like '%$name%')
 
UNION ALL

(SELECT 2 as qnum, U.id_aviso,U.telefonos,U.telefonos3,U.movil,U.dni,U.name,U.apellidos,D.localidad,D.calle
 
FROM usuarios U,dir_usuarios D WHERE  U.id_aviso=D.id_aviso AND D.calle != ''AND  U.name like '%$name%')"
;
}
if ( ! empty(
$loca)) { 
$sql ="(SELECT 0 as qnum,A.id_aviso,A.telefonos,A.telefonos3,A.movil,A.dni,A.name,A.apellidos,B.localidad,B.calle
 
FROM clientes A,dir_clientes B WHERE A.id_aviso=B.id_aviso AND B.calle != '' AND  B.localidad like '%$loca%')

UNION ALL
 
(SELECT 1 as qnum,id_aviso,telefonos,telefonos3,movil,dni,name,apellidos,localidad,calle
 
FROM avisos WHERE localidad like '%$loca%')
 
UNION ALL

(SELECT 2 as qnum, U.id_aviso,U.telefonos,U.telefonos3,U.movil,U.dni,U.name,U.apellidos,D.localidad,D.calle
 
FROM usuarios U,dir_usuarios D WHERE  U.id_aviso=D.id_aviso AND D.calle != ''AND  D.localidad like '%$loca%')"
;
}



    
// Ordenar por 
    
$vorder $_POST['orderby']; 
    
    if(
$vorder != ''){ 
        
$sql .= " ORDER BY ".$vorder
    } 
     
    
$query mysql_query($sql);
    if (!
$sql) {
    die(
'Consulta no válida: ' mysql_error());
}
    if (
mysql_num_rows($query)>) {

         
  
$datos = array(); 
     
    while(
$row mysql_fetch_array($query)) 
    { 
          if(
$row["qnum"]==0$style="";
          if(
$row["qnum"]==1)$style="background-color:yellow";
          if(
$row["qnum"]==2)$style="background-color:orange";
    
    
    
        
$datos[] = array( 
            
'id_aviso'          => $row['id_aviso'], 
            
'telefonos'          => $row['telefonos'], 
            
'name'      => utf8_encode($row['name']), 
            
'apellidos'       => utf8_encode($row['apellidos']),
            
'calle'       => utf8_encode($row['calle']),
            
'localidad'        => utf8_encode($row['localidad']),
            
'style'       =>  $style
            
            
        
); 
    } 
    
// convertimos el array de datos a formato json 
    
echo json_encode($datos); 
/* Tienes resultados. */ 
    
}else{
/*No tienes resultados. */ 
    
echo '[]'
        }
  }
?>

Muchas gracias por vuestro tiempo.
  #2 (permalink)  
Antiguo 12/07/2013, 09:40
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Me da error de funcion

Que versión de PHP usas, la función json_encode()/decode() esta a partir de la versión 5, otra opción es que este deshabilitada en el php.ini...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 12/07/2013, 09:41
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 4 meses
Puntos: 84
Respuesta: Me da error de funcion

creo que el problema lo tienes no con la función sino con $datos.

$datos es un array multidimensional por lo que creo que te está dando el error ahí, prueba a tener un solo valor en $datos si no te da error tendrás que recorrer $datos para especificar qué valor quieres pasar a json_encode(); y nos cuentas qué tal ok?

saludos!
  #4 (permalink)  
Antiguo 12/07/2013, 09:43
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
Respuesta: Me da error de funcion

Cita:
Iniciado por guardarmicorreo Ver Mensaje
creo que el problema lo tienes no con la función sino con $datos.

$datos es un array multidimensional por lo que creo que te está dando el error ahí, prueba a tener un solo valor en $datos si no te da error tendrás que recorrer $datos para especificar qué valor quieres pasar a json_encode(); y nos cuentas qué tal ok?

saludos!
<b>Fatal error</b>: Call to undefined function: json_encode() in </b> on line <b>174</b><br />

No, el error esta en la función tal como menciona Nemutagk
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #5 (permalink)  
Antiguo 12/07/2013, 09:47
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 4 meses
Puntos: 84
Respuesta: Me da error de funcion

Cita:
Iniciado por h2swider Ver Mensaje
<b>Fatal error</b>: Call to undefined function: json_encode() in </b> on line <b>174</b><br />

No, el error esta en la función tal como menciona Nemutagk
sí es cierto :D
  #6 (permalink)  
Antiguo 12/07/2013, 10:11
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 11 años, 6 meses
Puntos: 10
Respuesta: Me da error de funcion

Ok, he actualizado la versión y ya funciona. Muchas gracias a todos.

Etiquetas: funcion, mysql, select, sql, usuarios
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 04:52.