Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/10/2009, 02:13
a77icu5
 
Fecha de Ingreso: agosto-2008
Ubicación: Puebla, Mexico.
Mensajes: 84
Antigüedad: 15 años, 9 meses
Puntos: 0
Problema al regresar un solo registro de una consulta

Eh estado trabajando en un driver simple para mysql y me he encontrado con el siguiente caso al momento de devolver datos cuando el resultado de la query es de solo un registro.

Aplicando un print_r para debug me doy cuenta que el array esta bien formado pero tiene 'algo curioso', que efectivamente se trata de un array y no de una matriz por lo que al recorrerlo con un foreach no muestra los resultados.

Código PHP:
stdClass Object
(
    [
id] => 1
    
[value_1] => test
    
[value_2] => test
    
[value_3] => test

Sin embargo cuando el resultado de la query es de mas registros, logicamente me crea muy bien mi matriz de resultados por lo que puedo recorrerla y presentar mis datos sin problemas.

Código PHP:
Array
(
    [
0] => stdClass Object
        
(
            [
id] => 2
            
[value_1] => test2
            
[value_2] => test2
            
[value_3] => test2
        
)

    [
1] => stdClass Object
        
(
            [
id] => 1
            
[value_1] => test
            
[value_2] => test
            
[value_3] => test
        
)


El problema surge en la implementacion, suponiendo que tengo un metodo que me muestre la lista de esos elementos, en mi implementacion quedaria asi:

Código PHP:
<?php foreach($obj->getElementos() as $elemento):?>
    <tr>
        <td><?php echo $elemento->id?></td>
        <td><?php echo $elemento->value_1?></td>
        <td><?php echo $elemento->value_2?></td>
        <td><?php echo $elemento->value_3?></td>
    </tr>        
<?php endforeach;?>
Cuando la lista de esos elementos sea de 1 solo, los resultados no son mostrados, el metodo 'se compone' cuando la lista es mayor y es donde surge mi duda de como solucionar ese problema, aqui les dejo el metodo que me crear mi matriz de resultados y espero puedan darme algunos consejos de como solucionarlo, gracias.


Código PHP:
private function _fetchQuery(){
    
$this->_fetched = array();
    if(
$this->numRows() == 1) {
        
$this->_fetched mysql_fetch_object($this->_result);
    } else {
        while(
$row mysql_fetch_object($this->_result)) {
            
array_push($this->_fetched$row);
        }
    }
    return 
$this->_fetched;