Foros del Web » Programando para Internet » PHP »

mysql_num_rows(): supplied argument is not a valid MySQL

Estas en el tema de mysql_num_rows(): supplied argument is not a valid MySQL en el foro de PHP en Foros del Web. Buenas Tengo un problema.. al parecer con las clases.. Warning: mysql_num_rows(): supplied argument is not a valid MySQL e intentado acceder a la database con ...
  #1 (permalink)  
Antiguo 27/04/2009, 18:49
Avatar de Ryoga  
Fecha de Ingreso: octubre-2007
Mensajes: 16
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta mysql_num_rows(): supplied argument is not a valid MySQL

Buenas

Tengo un problema.. al parecer con las clases..

Warning: mysql_num_rows(): supplied argument is not a valid MySQL

e intentado acceder a la database con estos datos
al final del codigo veran que intente entrar de la manera que lo solia aser y me a funcionado a la perfección..
alguien podria echarme una manito plzz!!


Código PHP:
<?php
class mysql_conexion{
  var 
$conexion;
    function 
conectar(){
      if(!isset(
$this->conexion)){
        
$this->conexion = (mysql_connect("server","user","pass")) or die(mysql_error());
        
mysql_select_db("database",$this->conexion) or die(mysql_error());
        }
      }
    function 
consulta($consulta){
        
$resultado mysql_query($consulta,$this->conexion);
        return 
$resultado;
    }
    function 
num_rows($consulta){
        
$num mysql_num_rows($consulta);
        return 
$num;
    }
}
$db = new mysql_conexion;
$db->conectar();


$db->num_rows("SELECT * FROM anime");
echo 
$num;
//Resultado negativo.. error
//Warning: mysql_num_rows(): supplied argument is not a valid MySQL


//Test para ver si esta realizando bien la coneccion
$query mysql_query("SELECT * FROM anime");
$num2 mysql_num_rows($query);
echo 
"Encontrados: ".$num2;
//Resultado del test positivo.. "Encontrados: 6"
?>

desde ya muchas gracias! =)
  #2 (permalink)  
Antiguo 27/04/2009, 19:01
 
Fecha de Ingreso: julio-2008
Mensajes: 85
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: mysql_num_rows(): supplied argument is not a valid MySQL

Eso es porque la función isset, siempre devuelve true si la variable está declarada como es el caso. Prueba a usar !$this->conexion, o empty($this->conexion)
  #3 (permalink)  
Antiguo 27/04/2009, 19:07
Avatar de Ryoga  
Fecha de Ingreso: octubre-2007
Mensajes: 16
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: mysql_num_rows(): supplied argument is not a valid MySQL

nop.. sigue saliendo el mismo error.. en todo caso si fuera eso no conectaria tampoco el test que use para ver si estaba conectando bien ...


gracias por la respuesta de todos modos
  #4 (permalink)  
Antiguo 27/04/2009, 19:10
 
Fecha de Ingreso: julio-2008
Mensajes: 85
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: mysql_num_rows(): supplied argument is not a valid MySQL

Bueno es que se tiene que hacer como en el segundo test. Primero tienes que realizar la consulta con mysql_query. No hay otra forma.
  #5 (permalink)  
Antiguo 27/04/2009, 19:13
Avatar de Ryoga  
Fecha de Ingreso: octubre-2007
Mensajes: 16
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: mysql_num_rows(): supplied argument is not a valid MySQL

la forma en la que estoy intentandolo esta bien!.. lo saque de otra pagina la cual no nombrare para no aser spam x3 pero no entiendo pq a mi y solo a mi no me funciona u.U
incluso simplifique todo el codigo para postearlo lo mas sencillo posible y aun asi no me funciono u.u

gracias por las respuestas @-@ ojala alguien sepa de classes que me ayude u.U
  #6 (permalink)  
Antiguo 27/04/2009, 19:17
 
Fecha de Ingreso: julio-2008
Mensajes: 85
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: mysql_num_rows(): supplied argument is not a valid MySQL

NO está bien. mysql_num_rows recibe como parámetro un recurso mysql, no una cadena de texto con una consulta. Primero tienes que hacer $recurso = mysql_query("SELECT ... blah blah") para obtener el recurso. Y luego ya haces echo $db->num_rows($recurso)

De hecho es lo que te está diciendo el error.
  #7 (permalink)  
Antiguo 27/04/2009, 20:51
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: mysql_num_rows(): supplied argument is not a valid MySQL

más allá del error del isset, es cierto lo que comentan, los otros compañeros que me antecedieron, para poder los registros, primero debes de hacer un query(consulta) a la BD, para ello tienes el método consulta en tu clase, después de ello podrás obtener el número de registros encontrados, mostrar los datos, etc.

por otra parte, a partir de php5 las variables que no se declaran explicitamente con un modificador(private,protected, public), son públicas por defecto, así que cambia el modificador de tu atributo conexion a private(por teoría de POO).

suerte y que sigamos mejorando cada vez.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
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 15:02.