Comunidad de diseño web y desarrollo en internet online

Probelma con clases

Citar            
MensajeEscrito el 16 Jun 2009 04:36 am

Takashi escribió:

No soy muy bueno con la Orientacion a Objetos pero estoy tratando de comenzar...

tengo la siguiente clase:

clases/usuario.php

Código PHP :

class usuario{
   var $tipo, $id_tipo, $sql, $result, $row, $fecha, $db;
   
   function usuario($user, $id){
      $this->tipo = $id;
      $this->id_tipo = $user;
      $this->fecha = time();
      $this->db = Conectarse(); //Esto es la conexion a la base de datos que esta en una funcion que llamo desde el archivo usuarios.php
   }
   
   function most_user(){
      $this->sql = "SELECT * FROM `sss_usuarios`";
      $this->result = mysql_query($this->sql, $this->db);
      if(mysql_num_rows($this->result) > 0){
         return mysql_fetch_array($this->result);
      }else{
         return false;
      }
   }
}


/usuario.php

Código PHP :

include("clases/conectar_db.php");
include_once( "clases/usuario.php" );

        $users = new usuario('0', '1');

   while($row = $users->most_user()){
      echo $row['nomusu']."<br>";
   }


La base de datos tiene 1 solo registro y cuando ejecuto esto, se supone que deberia mostrarme un solo nombre porque most_user() retorna el mysql_fetch_array y eso debe contener un solo registro del cual quiero sacar solo el nombre, pero en cambio cae en un ciclo infinito, he tratado de muchas otras formas y el resultado sigue siendo el mismo....

Por Takashi

Claber

105 de clabLevel



Genero:Masculino  

Caracas - Venezuela

firefox
Citar            
MensajeEscrito el 18 Jun 2009 02:39 am
Es porque estas haciendo nuevamente la consulta en ese metodo
donde en tu while cada vez que da una vuelta consulta la base de datos y vuelve a retornar el mysql_fetch_array ;y asi se hara sin tener fin el bucle.

Saludos y Suerte

cualquier duda pasas la voz pana

Por alfcm

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Jun 2009 03:26 am
Hola

Lo tnes q hacer asi

Código PHP :

class Usuario{ 
   var $tipo, $id_tipo, $sql, $result, $row, $fecha, $db; 
    
   function Usuario($user, $id){ 
      $this->tipo = $id; 
      $this->id_tipo = $user; 
      $this->fecha = time(); 
      $this->db = Conectarse(); //Esto es la conexion a la base de datos que esta en una funcion que llamo desde el archivo usuarios.php 
   } 
    
   function next()
{
    if ( isset ( $this->result )
    {
       return mysql_fetch_array($this->result);
    }
    retun null
}
   function getUsers(){ 
      $this->sql = "SELECT * FROM `sss_usuarios`"; 
      $this->result = mysql_query($this->sql, $this->db); 
   } 
} 



y luego la usasa asi

Código PHP :

include("clases/conectar_db.php"); 
include_once( "clases/usuario.php" ); 
 
$users = new usuario('0', '1'); 
$users->getUsers();

while ( $row = $users->next() )
{
      echo $row['nomusu']."<br>"; 
} 



Como decia el compañero en la respuesta anterior... estabas por cada iteracion del while haciendo a consulta nuevamente. Mas q seguro q la clase se puede mejorar, pero por ahi anda la cosa


Saludos!

Por alfathenus

833 de clabLevel

5 tutoriales

 

buenos aires || Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.