Foros del Web » Programando para Internet » PHP »

La función no me retorna nada php mysqli

Estas en el tema de La función no me retorna nada php mysqli en el foro de PHP en Foros del Web. Buenas noches! Necesito ayuda, esto me tiene trancada, hice una función para buscar un usuario por cédula pero el problema es que no me trae ...
  #1 (permalink)  
Antiguo 04/12/2014, 19:15
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 12 años, 7 meses
Puntos: 1
La función no me retorna nada php mysqli

Buenas noches! Necesito ayuda, esto me tiene trancada, hice una función para buscar un usuario por cédula pero el problema es que no me trae nada, estoy trabajando con clases y sentencia preparadas, este es el código que estoy utilizando:

Código:
require_once('conexion.php');

	Class Usuario{

		private $idUsuario;
		private $cedula;
		private $nombre;
		private $apellido;
public function __construct($cedula=null, $nombre=null, $apellido=null, $idUsuario=null)
		{
			$this->cedula=$cedula;
			$this->nombre=$nombre;
			$this->apellido=$apellido;
		}
public function getCedula(){
			return $this->cedula;
		}
		public function getNombre(){
			return $this->nombre;
		}
		public function getApellido(){
			return $this->apellido;
		}
public function setCedula($cedulaP){
			$this->cedula=$cedulaP;
		}
		public function setNombre($nombreP){
			$this->nombre=$nombreP;
		}
		public function setApellido($apellidoP){
			$this->apellido=$apellidoP;
		}
	public function buscarPorCedula($cedula){
			$link=new Conexion();
			$conexion=$link->conectar();
			$consulta=$conexion->prepare('SELECT * FROM usuario WHERE cedula=?');
			$consulta->bind_param('s', $cedula);
			$consulta->execute();
			/* vincular las variables de resultados */
			$rows=$consulta->get_result();
			$resultado=$rows->fetch_assoc();
			if($resultado)
			{
				$conexion->close();
//                $consulta->close();
				return  new self($cedula,$resultado['nombre'],$resultado['apellido']$resultado['idUsuario']);
			}
			else{
				$conexion->close();
                $consulta->close();
				return false;
			}
		}
porque no me funciona? que tengo malo en el código?
  #2 (permalink)  
Antiguo 05/12/2014, 06:29
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: La función no me retorna nada php mysqli

Buenas... el problema empieza desde el momento que intentas saber un error, pero no compilas ese error, es decir, no haces ninguna excepcion de error... sin eso es como jugar a las adivinanzas, tanto para tí como para nosotros.. en mysqli puede usar algo como

Código PHP:
Ver original
  1. <?php
  2. try {
  3.     la accion que quieres realizar
  4.     }
  5. catch(PDOException $e)
  6.     {
  7.     //Aqui caen tus errores.
  8.     echo $e->getMessage();
  9.     }
  10. ?>

A menos que te tire un error y se te pasó colocarlo en el post.
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #3 (permalink)  
Antiguo 05/12/2014, 22:39
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: La función no me retorna nada php mysqli

Gracias loncho_rojas por responderme, le agregue lo que me dijiste y también le cambie la parte de mostrar los datos y ahora si funciona
Código:
$consulta->bind_result($nombre,$apellido);
				$row=$consulta->fetch();
				if($row){
				$this->nombre=$nombre;
				$this->apellido=$apellido;
				$conexion->close();
				$consulta->close();
				return true;
			}	
			else
			{
				$conexion->close();
				$consulta->close();
				return false;
			}
Código:
public function buscarPorCedula($cedula){
try { 
			$link=new Conexion();
			$conexion=$link->conectar();
			$consulta=$conexion->prepare('SELECT * FROM usuario WHERE cedula=?');
			$consulta->bind_param('s', $cedula);
			$consulta->execute();
			$consulta->bind_result($nombre,$apellido);
				$row=$consulta->fetch();
				if($row){
				$this->nombre=$nombre;
				$this->apellido=$apellido;
				$conexion->close();
				$consulta->close();
				return true;
			}	
			else
			{
				$conexion->close();
				$consulta->close();
				return false;
			}
		}
catch(Exception $e) 
		    { 
		    //Aqui caen tus errores. 
		    echo $e->getMessage(); 
		    }

Etiquetas: mysqli, nada, retorna, select, variable
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 08:33.