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

PHP OO Obtener varios registros (active record)

Estas en el tema de Obtener varios registros (active record) en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas estoy comenzando a usar Active Record, he extraido el código de esta página. http://foro.elhacker.net/php/aplican...t285034.0.html He guardado y obtenido un registro perfectamente. Me gustaria obtener ...
  #1 (permalink)  
Antiguo 21/04/2011, 11:01
 
Fecha de Ingreso: octubre-2009
Mensajes: 223
Antigüedad: 14 años, 6 meses
Puntos: 2
Obtener varios registros (active record)

Buenas estoy comenzando a usar Active Record, he extraido el código de esta página.

http://foro.elhacker.net/php/aplican...t285034.0.html

He guardado y obtenido un registro perfectamente.

Me gustaria obtener un ejemplo que recorra toda la tabla, es decir, que no tenga que especificarle el ID

Gracias
  #2 (permalink)  
Antiguo 21/04/2011, 13:29
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: Obtener varios registros (active record)

podrias cambiar esto:
Código PHP:
Ver original
  1. public function busca($codigo)
  2.     {
  3.         $tabla = get_class($this);
  4.         $campos = $this->campos($tabla);
  5.         $sentencia = "select * from $tabla where $campos[0]='$codigo'";
  6.         $arreglo = $this->sentencia($sentencia);
  7.         $numero = mysql_num_rows($arreglo);
  8.         if($numero>0)
  9.         {
  10.             $this->definevalores($tabla,$arreglo);
  11.             return 1;
  12.         }else{ return 0; }
  13.     }

por esto:
Código PHP:
Ver original
  1. public function busca($codigo)
  2.     {
  3.         $tabla = get_class($this);
  4.         $campos = $this->campos($tabla);
  5.                 $sentencia = "select * from $tabla where 1"
  6.                 if(!empty($codigo){
  7.           $sentencia .= "AND ".$campos[0]."='$codigo'";
  8.                 }
  9.         $arreglo = $this->sentencia($sentencia);
  10.         $numero = mysql_num_rows($arreglo);
  11.         if($numero>0)
  12.         {
  13.             $this->definevalores($tabla,$arreglo);
  14.             return 1;
  15.         }else{ return 0; }
  16.     }

con el if preguntas si $campos no esta vacio que busque por el campo, sino que traiga todos
  #3 (permalink)  
Antiguo 21/04/2011, 18:00
 
Fecha de Ingreso: octubre-2009
Mensajes: 223
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Obtener varios registros (active record)

Y como tendría acceso a cada registro? Podría ser algo así

Código PHP:
Ver original
  1. ...
  2. $usu = new Usuario();
  3. $usu->busca();
  4. for($i=0;$i<count($usu);$i++)
  5. echo $usu[$i]->apellidos;
  6. ...
  #4 (permalink)  
Antiguo 22/04/2011, 12:36
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: Obtener varios registros (active record)

mmm por lo que veo del codigo lo unico que hace ese método es si hay registros se lo pasa al método definevalores, tendrías que ver que devuelve ese método, seguramente es una array que después podrás usar para recorrer los campos.

salu2

Etiquetas: record, registros
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 23:39.