Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Problema con funcion

Estas en el tema de Problema con funcion en el foro de PHP en Foros del Web. Tengo una página donde quiero mostrar las opciones que puede hacer el usuario i quando intento recuperar su id no funciona no muestra ningun error ...
  #1 (permalink)  
Antiguo 13/01/2013, 07:11
 
Fecha de Ingreso: enero-2013
Mensajes: 55
Antigüedad: 11 años, 3 meses
Puntos: 1
Problema con funcion

Tengo una página donde quiero mostrar las opciones que puede hacer el usuario i quando intento recuperar su id no funciona no muestra ningun error
Código PHP:
if (!isset($_SESSION["USUSARI"])) header ("Location: ../index.php");
include_once (
"../clases/Usuaris.php");
$usuari=new Usuaris();
$id=$usuari->obtenerID(); //Error
?> 

Código PHP:
public function obtenerID(){ 
        
$consulta="select id from usuaris where email='".$_SESSION["USUARI"]."' AND valid='1'";
    
$conect = new BaseDatos(); //Conecta ala base de datos
    
$sql $conect->prepare($consulta);
    
$sql->execute();
    if (
$sql<0) return "Error 904: No se ha encontrado el usuario."//Si no encuentra el usuario devuelve error
    
while ($row=$sql->fetch()) return $row["id"];    //Como solo habra 1 con ese email i que sea valido retorno el primer resultado

PD: Hay alguna función para obtener 1 solo resultado?
  #2 (permalink)  
Antiguo 13/01/2013, 09:03
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 3 meses
Puntos: 44
Respuesta: Problema con funcion

1º) Revisa tu php.ini, y activa el error_reporting y el display_errors mientras estés desarrollando para saber que errores te arroja.

2º) Cerciórate de que los nombres de la base de datos y las tablas y columnas estén correctos.

3º) ¿Utilizas PDO en tu clase?

3ºb) Si utilizas prepared statements, ¿porque construyes la query directamente?

Seria más sencillo utilizar

Código PHP:
Ver original
  1. $id=$usuari->obtenerID($_SESSION["USUARI"]);

y luego pasar por parámetro

Código PHP:
Ver original
  1. public function obtenerID($email){  
  2.     $consulta="select id from usuaris where email= :email AND valid='1'";
  3.     $conect = new BaseDatos(); //Conecta ala base de datos
  4.     $st = $conect->prepare($consulta);
  5.     $st->bindParam(":email", $email);
  6.     $ex= $st->execute();
  7.     if (!$ex) return "Error"; //No debería ser así. Mejor una Excepción aqui.
  8.     $row = $sql->fetch(PDO::FETCH_ASSOC));
  9.     return $row["id"];
  10. }

Al método no le interesa de dónde vienen los datos.
  #3 (permalink)  
Antiguo 13/01/2013, 09:22
 
Fecha de Ingreso: enero-2013
Mensajes: 55
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Problema con funcion

1º) Revisa tu php.ini, y activa el error_reporting y el display_errors mientras estés desarrollando para saber que errores te arroja.

Muchas gracias por esto.

El problema lo tengo en el include de la clase Usuarios para la clase BaseDatos que no la encuentra.

Lo empece a hacer como tu me los has puesto pero como que es una trabajo de clase - p**ada para dentro de 2 dias no me parao a hacerlo bien si no que funcione que es lo que va a mirar.
  #4 (permalink)  
Antiguo 13/01/2013, 09:28
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 3 meses
Puntos: 44
Respuesta: Problema con funcion

Entonces revisa la ruta del archivo a incluir. Te sugiero que utilices rutas absolutas en vez de relativas al documento.

Por ejemplo

Código PHP:
Ver original
  1. include_once ($_SERVER["DOCUMENT_ROOT"] . "/clases/Usuaris.php");

En caso de que tengas ahí el directorio de clases.

Saludos
  #5 (permalink)  
Antiguo 13/01/2013, 11:44
 
Fecha de Ingreso: enero-2013
Mensajes: 55
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Problema con funcion

Lo apunto en la wiki :) ahora me tiene que funcionar rapido.
Muchas gracias
  #6 (permalink)  
Antiguo 13/01/2013, 12:27
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba
Mensajes: 119
Antigüedad: 13 años, 5 meses
Puntos: 8
Respuesta: Problema con funcion

Cita:
Iniciado por aculvi Ver Mensaje
Lo apunto en la wiki :) ahora me tiene que funcionar rapido.
Muchas gracias
Te funciona ya ?
  #7 (permalink)  
Antiguo 14/01/2013, 05:28
 
Fecha de Ingreso: enero-2013
Mensajes: 55
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Problema con funcion

Cita:
Iniciado por kraneok Ver Mensaje
Te funciona ya ?
Si, muchas gracias

Etiquetas: funcion, 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 14:13.