Tema: clases
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/08/2004, 06:09
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

El problema es que en resultado() estas metiendo el return dentro de un bucle. Y return sale de la funcion en su primera ejecucion, asi que solo devuelve el primer registro.

La solucion seria implementar resultado() para que funcione de la misma forma que mysql_fetch_assoc(), quedando algo como:
Código PHP:
function resultado() {
  return 
mysql_fetch_assoc($this->consulta);

Y se llamaria como a mysql_fetch_assoc(), con un while.

Otra opcion seria que resultado() almacenase todo el recordset en un array y devolviese ese array, algo como:
Código PHP:
function resultado() {
  
$registros=array();
  while (
$row=mysql_fetch_assoc($this->consulta)) {
    
$registros[]=$row;
  }
  return 
$registros;

Y luego al recoger el array se podria recorrer con un foreach:
Código PHP:
$res=$mysql->resultado();
foreach (
$res as $row) {
  echo
"$row[nombre_producto]<br>";

Sobre la simplificacion del codigo, me temo que no hay forma de evitar poner el objeto.

saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.