Foros del Web » Programando para Internet » PHP »

Tengo un problema con mysql_num_rows()

Estas en el tema de Tengo un problema con mysql_num_rows() en el foro de PHP en Foros del Web. Hola gente del foro!! cómo están?? Les cuento, estoy desarrollando un sistema en el que creé una clase Clientes en la que dentro tengo varias ...
  #1 (permalink)  
Antiguo 13/08/2010, 13:05
Avatar de fakulicious  
Fecha de Ingreso: mayo-2008
Ubicación: Mendoza
Mensajes: 140
Antigüedad: 15 años, 11 meses
Puntos: 2
Pregunta Tengo un problema con mysql_num_rows()

Hola gente del foro!! cómo están??

Les cuento, estoy desarrollando un sistema en el que creé una clase Clientes en la que dentro tengo varias funciones con las diferentes consultas a la base de datos (nuevo, editar, eliminar, consultar, etc)

El problema que tengo es que al ejecutar la funcion mysql_num_rows() sobre una consulta de una función que se llama validarCliente() (que comprueba si el usuario ya existe) me da el siguiente error:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in D:\1 - Clientes en Proceso\Farmacia Santa Ana\3\actions\clientes.actions.php on line 55

Los códigos son los siguientes:

clientes.actions.php
Código PHP:
<?php

$email 
$_POST['email'];
$objetoCliente = new Clientes;
$consulta $objetoCliente->validarCliente($email);
            
if(
$consulta){
    
$total mysql_num_rows($consulta); //esta es la linea 55
    
if($total >= 1){
        echo 
'existe';
    } else {
        echo 
'disponible';
    } 
}


?>

clientes.class.php
Código PHP:
<?php

include_once("connection.class.php");

class 
Clientes{
 
//constructor    
     
var $con;
     function 
Clientes(){
         
$this->con=new DBManager;
     }

    function 
validarCliente($email){
        if(
$this->con->conectar()==true){
            return 
mysql_query("SELECT * FROM clientes WHERE email = '$email';") or die(mysql_error());
        }
    }

}
?>
Según lo que dice el error, la funcion mysql_num_rows() espera recibir un resource, y está recibiendo un boolean, o sea un true o false.

Como hago para que el $objetoCliente reciba el resource en vez del boolean.

Me resulta muy raro, ya que en otra parte del código con la misma lógica y sintaxis hice mysql_fetch_array($consulta) y funciona a la perfección.. y esta función también espera recibir un resource.

Espero que alguien pueda ayudarme. Muchas gracias!!
__________________
Facundo
http://www.creactivo.com.ar
  #2 (permalink)  
Antiguo 13/08/2010, 13:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Tengo un problema con mysql_num_rows()

deberías replantear tu solución...

ya que si usas un objeto para encapsular el proceso de la BD, ¿porque usar mysql_* fuera de??

osea... no tiene sentido!! y dicho así, entonces no tiene caso que uses OOP pues nada de provecho le sacas...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/08/2010, 13:21
Avatar de fakulicious  
Fecha de Ingreso: mayo-2008
Ubicación: Mendoza
Mensajes: 140
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Tengo un problema con mysql_num_rows()

pateketrueke, gracias por contestar.. ahora lo que hice fue usar el mysql_num_rows() dentro de la funcion validarCliente() y devolver el resultado de mysql_num_rows() quedando asi:

clientes.class.php
Código PHP:
    function validarCliente($email){
        if(
$this->con->conectar()==true){
            
$consulta mysql_query("SELECT * FROM clientes WHERE email = '$email';") or die(mysql_error());
            
$total mysql_num_rows($consulta);
            return 
$total;
        }
    } 
clientes.actions.php
Código PHP:
            $email $_POST['email'];
            
$objetoCliente = new Clientes;
            
$total $objetoCliente->validarCliente($email);
            if(
$total >= 1){
                echo 
'existe';
            } else {
                echo 
'disponible';
            } 
Y funcionó a la perfección!! Muchas gracias!!!
__________________
Facundo
http://www.creactivo.com.ar
  #4 (permalink)  
Antiguo 13/08/2010, 13:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Tengo un problema con mysql_num_rows()

fakulicious, perfecto!!

una de las bondades de OOP -que casi olvidas- es la de encapsular los problemas....

ya que antes tu código era muy ambiguo, y por ende nada consistente...

bueno, visto así...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: Ninguno
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 07:34.