Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/08/2005, 08:22
Znet
 
Fecha de Ingreso: marzo-2002
Ubicación: Salta Capital - Actualmente estudiando en Córdoba
Mensajes: 430
Antigüedad: 22 años, 1 mes
Puntos: 0
Gran duda para los gurus.

Hola primero colocare mi clase y los llamados que hago desde la BD porque hay algo que no me cierra.

clases.php
Código PHP:
<?php 
class Db{
 var 
$servidor;
 var 
$user;
 var 
$pass;
 var 
$db_name
 var 
$db_conn;
 var 
$db_select;
 var 
$result//Resultado de la consulta
   
function Db()
   {
       
$this->servidor="localhost";
       
$this->db_name="moute";
       
$this->user="";
       
$this->pass="";
       
$this->db_conn=@mysql_connect($this->servidor$this->user$this->pass) or die ("Error de Coneccion".mysql_error());
       
$this->db_select=@mysql_select_db($this->db_name$this->db_conn);  
   }
   
   function 
consulta_db($sql)
   {
    
$this->Db();
    
$this->result=@mysql_query($sql$this->db_conn) or die("Error de Consulta".mysql_error());
    return (
$this->result);
   }
   
   function 
close_db()
   {
    
$this->Db();
    
mysql_close($this->db_conn);
   }
}
?>
Ahora de la siguiente forma:
Código PHP:
<?php 
 $objeto 
= new Db();
 
$sql2="Select actividad from actividades";
 

 while (
$resul=mysql_fetch_assoc($objeto->consulta_db($sql2))) {
  echo 
"<option value=".$resul.">".$resul['actividad']."</option>";  
 }
?>
Ahora esto, me tira como un loop infinito hasta que el server dice basta, y me repite el elemento unas 50 veces pero solo muestra un elemento. Ejemlpo
Actividad1
Actividad1
Actividad1
Actividad1
Actividad1
Actividad1
........
.
.
.
Actividad1
Actividad1
Actividad1
De esta forma, ahora si hago lo siguiente:
Código PHP:
<?php 
     $objeto 
= new Db();
     
$sql2="Select actividad from actividades";
     
$objeto->consulta_db($sql2);
 
     while (
$resul=mysql_fetch_assoc($objeto->result)) {
  echo 
"<option value=".$resul.">".$resul['actividad']."</option>";  
 }
?>
Me devuelve las 3 actividades correctamente, asi:
Actividad1
Actividad2
Actividad3

Lo que no entiendo es por qué si se supone que $objeto->consulta_db($sql2) retorna lo mismo que $objeto->result. Porque pasa esto¿¿

Y otra cosa, cuando quiero implementar un ciclo foreach, no hay forma que me muestre las 3 actividades con mysql_fetch_assoc solo me muestra 1, con mysql_fetch_array me muestra actvidad1 repetida 2 vces, que es lo que estoy haciendo mal?
__________________
Nada es imposible, con un poco de esfuerzo se logran las cosas.-