Foros del Web » Programando para Internet » PHP »

Error al consultar desde php

Estas en el tema de Error al consultar desde php en el foro de PHP en Foros del Web. Buenas noches Tengo el problema que cuando llamo el resultado de 2 consultas de una clase me genera un error: Esta es la clase clase ...
  #1 (permalink)  
Antiguo 21/03/2011, 22:08
Avatar de malavera  
Fecha de Ingreso: mayo-2009
Ubicación: Bogota - Colombia
Mensajes: 7
Antigüedad: 14 años, 11 meses
Puntos: 0
Error al consultar desde php

Buenas noches

Tengo el problema que cuando llamo el resultado de 2 consultas de una clase me genera un error:

Esta es la clase

clase a donde hago las consultas y la extiendo a b para llamar otras funciones como conectar a la base de datos

Listar es una funcion que me devuelve un array asociativo de la consulta.

Código PHP:
Ver original
  1. class a extends b{
  2.  
  3.     function geta(){
  4.  
  5.     $query = "SELECT *  FROM a";
  6.     $this->typeDoc = $this->Listar($query);
  7.     return $this->typeDoc;
  8.  
  9.     }
  10.  
  11.     function getb(){
  12.  
  13.     $query = "SELECT * FROM b";
  14.  
  15.     $this->ocupation = $this->Listar($query);
  16.  
  17.     return $this->ocupation;
  18.  
  19.     }
  20.  
  21. }

Esta es la clase

ahora la llamo de este modo
Código PHP:
Ver original
  1. $a = new a();
  2.  
  3.     $listadea = $a->geta();
  4.  
  5.     $listadeb = $a->getb();

Cuando los empiezo a imprimr la variable $listadea que es el resultado de la tabla a la cual tiene 9 registros me los muestra bien.

Lo quiere mostrar en un select de la siguiente manera

Código HTML:
Ver original
  1. <?php $n = count($listadea);
  2. for ($i=0; $i < $n; $i++){ ?>
  3. <option value="">[B]<?php echo $typeDoc[$i]['DESCRIPCION']; ?>[/B]</option>
  4. <?php } ?>
Me muestra los 9 perfectos

Y cuando quiere mostrar la variable b que es el resultado de la consulta de la tabla b la cual contiene 6 registros tambien me muestra los registros. en un select

Pero despues de este me salen 3 opciones mas con error, como en la consulta anterior salen 9 sabiendo que son 6.

Código HTML:
Ver original
  1. <?php $m = count($listadeb);
  2. for ($i=0; $i < $m; $i++){ ?>
  3. <option value=""> [B]<?php echo $typeDoc[$i]['DESCRIPCION']; ?>[/B]</option>
  4. <?php } ?>
Pero cuando llamo de esta manera todo me va de pelo:

Código PHP:
Ver original
  1. $a = new a();
  2.  
  3.     $listadea = $a->geta();
  4.  
  5.     $a2 = new a();
  6.  
  7.     $listadeb = $a2->getb();
Pero no veo la necesidad de instanciar dos veces la misma clase.

Espero me ayuden y pues si creen que no me esplique bien espero su comentario. de que necesitan saber para ayudarme.

Saludos
  #2 (permalink)  
Antiguo 21/03/2011, 22:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Error al consultar desde php

Deberías de mostrar la clase que es la encargada de realizar las consultas, es probable que ahí se encuentre el error.

Saludos.
  #3 (permalink)  
Antiguo 21/03/2011, 22:52
Avatar de malavera  
Fecha de Ingreso: mayo-2009
Ubicación: Bogota - Colombia
Mensajes: 7
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Error al consultar desde php

Hola

Esta es la clase encargada de realizar las consultas.

Saludos

Código PHP:
Ver original
  1. class b{
  2.  
  3.     var $object = null;
  4.     var $result = null;
  5.     var $query = null;
  6.     var $total = null;
  7.  
  8.     var $dbhost = 'localhost';
  9.     var $dbpass = '123';
  10.     var $dbuser = 'user';
  11.     var $database = 'base';
  12.  
  13.     function __construct(){
  14.  
  15.     try{
  16.         $this->conexion = (mysql_connect($this->dbhost,$this->dbuser,$this->dbpass));
  17.         mysql_select_db($this->database,$this->conexion);
  18.         if ($this->conexion == false){
  19.         throw new Exception('Error estableciendo conexion.');
  20.         }
  21.  
  22.     }catch(Exception $e){
  23.          echo $e->getMessage();
  24.     }
  25.     }
  26.  
  27.     function Listar($query = null){
  28.  
  29.     $this->query = mysql_query($query);
  30.     $this->total = mysql_num_rows($this->query);
  31.  
  32.     for($i=0; $i< $this->total; $i+=1){
  33.  
  34.         $this->object = mysql_fetch_assoc($this->query);
  35.         $this->result[$i] = $this->object;
  36.     }
  37.  
  38.     return $this->result;
  39.  
  40.     }
  41.  
  42. }
  #4 (permalink)  
Antiguo 21/03/2011, 23:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Error al consultar desde php

El problema es tu método Listar, ya que almacena todo el $this->result, lo que hace que aunque hagas otras consultas se queden los resultados en esa variable, te recomiendo que mejor utilizes PDO para tus accesos a la base de datos.

Saludos.
  #5 (permalink)  
Antiguo 22/03/2011, 01:05
Avatar de malavera  
Fecha de Ingreso: mayo-2009
Ubicación: Bogota - Colombia
Mensajes: 7
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Error al consultar desde php

Hola gracias por tu respuesta

Con lo que me dijiste agrege esto a la funcion listar

Código PHP:
Ver original
  1. unset($this->result);


Pero si me recomendias PDO en vez de mysql_connect voy a leer sobre esto.

Saludos
muchas gracias

Etiquetas: consultar
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 15:40.