Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

ayudita con una clase

Estas en el tema de ayudita con una clase en el foro de Frameworks y PHP orientado a objetos en Foros del Web. estimados, estoy adentrandome en el mundo de las clases y necesitaria una pequeña ayuda... Código PHP: class  db_mysql  { // funciones para conexion y todas esas yerbas....      function  query ( $query ...
  #1 (permalink)  
Antiguo 17/08/2007, 09:59
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 5 meses
Puntos: 1
ayudita con una clase

estimados, estoy adentrandome en el mundo de las clases y necesitaria una pequeña ayuda...

Código PHP:
class db_mysql {
// funciones para conexion y todas esas yerbas....

    
function query($query){
        
$result mysql_query ($query$this -> connection);        
        return 
$result;
    }

    function 
row_assoc($query){
        
$resource $this->query($query);
        
$result = @mysql_fetch_assoc($resource);
        @
mysql_free_result($resource);
        return 
$result;
               
// en esta funcion quiero implementarlo
    
}


en ese codigo necesito implementar el famoso mysql_num_rows
para saber cuantos registros me da esa funcion

como deberia de hacerlo?
deberia de agregar a la funcion row_assoc esto?
$this->rows = mysql_num_rows();
__________________
On error no hago nada porque deje de fumar...
  #2 (permalink)  
Antiguo 17/08/2007, 10:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: ayudita con una clase

Asi es y posteriormente otro metodo que se llame getRows() donde devuelvas $this->rows;

Saludos.

PD Tema trasladado a PHP Orientado a Objetos
  #3 (permalink)  
Antiguo 17/08/2007, 10:32
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 5 meses
Puntos: 1
Re: ayudita con una clase

a mysql_num_rows(); no hay que pasarle algun parametro?
__________________
On error no hago nada porque deje de fumar...
  #4 (permalink)  
Antiguo 17/08/2007, 10:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: ayudita con una clase

El resource de resultado.

Saludos.
  #5 (permalink)  
Antiguo 17/08/2007, 11:20
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 5 meses
Puntos: 1
Re: ayudita con una clase

acabo de darme cuenta de que row_assoc genera un array, entonces no era necesario mysql_num_rows sinó que con $this->rows = count($results)-1;
estaria bien
la pregunta ahora es.. si quiero saber las rows de determinada llamada a row_assoc como deberia de modificar esto?

echo $database->num_rows();

podria ser asi?
$usuarios= $database->list_assoc("SELECT * FROM usuarios");
echo $database->num_rows($usuarios);

o nada que ver?
__________________
On error no hago nada porque deje de fumar...
  #6 (permalink)  
Antiguo 17/08/2007, 11:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: ayudita con una clase

Como te digo, necesitas usar mysql_num_rows para obtener la candidad de resultados de una consulta de tipo SELECT, tendrias que despues de hacer tu consulta, almacenar las filas de resultados para posteriormente accesar ese dato.

Saludos.
  #7 (permalink)  
Antiguo 17/08/2007, 12:16
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 5 meses
Puntos: 1
Re: ayudita con una clase

nop...
si lees bien

$resource = $this->query($query);
$result = @mysql_fetch_assoc($resource);
@mysql_free_result($resource);
return $result;

eso esta generando un arreglo
con saber la longitud del arreglo se cuantas filas tiene la consulta...
__________________
On error no hago nada porque deje de fumar...
  #8 (permalink)  
Antiguo 17/08/2007, 14:28
Avatar de k4k4  
Fecha de Ingreso: junio-2007
Ubicación: Baja California, México
Mensajes: 120
Antigüedad: 16 años, 11 meses
Puntos: 6
Re: ayudita con una clase

Hola,

según recuerdo mysql_fetch_assoc() si te regresa un arreglo, pero es el correspondiente a la fila actual indicada por el cursor interno (que no podemos ver). xD

En otras palabras, tu método row_assoc() únicamente sirve para consultas que regresan una sola fila. De este modo, no tienes necesidad de usar mysql_num_rows() después de todo.

Espero haber leído bien. xD

Por otro lado, te recomendaría no usar la supresión de errores (el @) y en lugar de eso, capturarlos o "gestionarlos", es decir, hacer algo cuando se presenten.


Saludos.
  #9 (permalink)  
Antiguo 17/08/2007, 14:36
Avatar de raffskizze  
Fecha de Ingreso: marzo-2004
Ubicación: ...
Mensajes: 433
Antigüedad: 20 años, 1 mes
Puntos: 0
Re: ayudita con una clase

Si lo que quieres es que esto te devuelva el numero de registros de la consulta:
echo $database->num_rows($usuarios);

tendras que crear primero la funcion dentro de la clase num_rows() que devuelva return $num:
function row_assoc($query){
$resource = $this->query($query);
$result = @mysql_fetch_assoc($resource);
$this->rows = count($results)-1;
@mysql_free_result($resource);
return $result;
// en esta funcion quiero implementarlo
}

funcion num_rows()
{
return $this->rows;
}

Date cuenta que a la funcion row_Assoc le añadi la fila $this->rows = count($results)-1; que es como tu quieres contar las rows.

Ahora llama a la funcion num_rows asi:
echo $database->num_rows(); //sin el $usuarios
__________________
echo ( www.tutorial-enlace.net == tutoriales gratis ) ? 'Aprenderas gratis !!' : 'No aprenderas !!';
  #10 (permalink)  
Antiguo 17/08/2007, 14:44
Avatar de k4k4  
Fecha de Ingreso: junio-2007
Ubicación: Baja California, México
Mensajes: 120
Antigüedad: 16 años, 11 meses
Puntos: 6
Re: ayudita con una clase

Sugiero revisar la documentación de mysql_fetch_assoc().

O_O no se, tal vez estoy leyendo mal... xD
  #11 (permalink)  
Antiguo 17/08/2007, 14:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: ayudita con una clase

Estas en lo correcto k4k4, necesita forzosamente usar mysql_num_rows para saber el total de filas, pero lo tiene que hacer en la funcion query, no en la de row_assoc, porque de nada sirve estar descargando el mismo dato por cada fila que quiera.

Saludos.
  #12 (permalink)  
Antiguo 17/08/2007, 15:56
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 5 meses
Puntos: 1
Re: ayudita con una clase

error mio me equivoque al pegar la funcion.. la funcion correcta es

function list_assoc($query){
$results = array();
$resource = $this->query($query);
while ($row = @mysql_fetch_assoc($resource)) {
$results[] = $row;
}
@mysql_free_result($resource);
$this->rows = count($results);
return $results;
}

ahora si estoy en lo cierto de que sabiendo la cantidad de elementos del array es lo mismo que mysql_num_rows??
__________________
On error no hago nada porque deje de fumar...
  #13 (permalink)  
Antiguo 17/08/2007, 16:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: ayudita con una clase

Asi es.

Saludos.
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 10:31.