Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Iteradores y contables (https://www.clubdelphi.com/foros/showthread.php?t=64359)

roman 28-03-2009 02:51:27

Iteradores y contables
 
¿Verdad que son curiosas las interfaces en PHP 5?

Miren si no esta clase:

Código PHP:

<?php
class DbRows implements CountableIterator
{
    private 
$results;
    private 
$index = -1;
    private 
$row false;

    
/**
     * Constructor. Se inicializa con los resultados de una llamada a
     * mysql_query.
     */
    
public function __construct($results)
    {
        
$this->results $results;
    }

    
/**
     * Devuelve el número de registros
     */
    
public function count()
    {
        return 
mysql_num_rows($this->results);
    }

    
/**
     * Reinicia la iteración
     */
    
public function rewind()
    {
        @
mysql_data_seek($this->results0);
        
$this->index = -1;
        
$this->next();
    }

    
/**
     * Avanza de registro
     */
    
public function next()
    {
        
$this->row mysql_fetch_row($this->results);

        if (
$this->row)
        {
            
$this->index++;
        }
    }

    
/**
     * Devuelve el registro actual
     */
    
public function current()
    {
        return 
$this->row;
    }

    
/**
     * Devuelve el índice actual
     */
    
public function key()
    {
        return 
$this->index;
    }

    
/**
     * Devuelve si la posición actual es válida
     */
    
public function valid()
    {
        return 
$this->row != false;
    }
}
?>

Y, ¿cuál es su uso?

Si creamos un objeto de esta clase con el resultado de una consulta:

Código PHP:

$dbRows = new DbRows(mysql_query('select ....')); 

podemos recorrer todos los registros con una sentencia tan limpia como:

Código PHP:

echo 'Número de registros: ' count($dbRows);

foreach (
$dbRows as $row)
{
    
var_dump($row);


:)

// Saludos

Kipow 28-03-2009 03:10:27

Simple y funcional. aunque ahora que he estado documentandome en PHP pues no se ven nada mal las PDO.


La franja horaria es GMT +2. Ahora son las 15:59:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi