Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/10/2012, 09:56
ferminako
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años, 6 meses
Puntos: 1
Problema, no retorna todos los campos.

Buenas a to2, estoy en un gran aprieto, me ofreci para modificar una web y resulta que estoy bloqueado...

He añadido 2 campos a una tabla , pero al leer la tabla desde el php no me lee esos campos, es como si obviara unicamente los ampos nuevos.

El codigo es :

$items = $casedb->get_results( $casedb->prepare("SELECT * FROM tabla WHERE subid = xxx and listo= 'si' ORDER BY orden ", $parent) ) or die (mysql_error());

Al realizarlo me devuelve datos pero no todos, fijense que uso un * por lo que el select contempla todos los campos.
si hago un echo var_dump() del prepare me devuelve :
SELECT * FROM tabla WHERE id= xxx and listo= 'si' ORDER BY orden

Y si ejecuto esta sql en mysql me retorna todos los datos, por lo que deduzco que en el $casedb->get_results() es donde radica el problema, pero por mas que lo reviso no encuentro nada.
Este es el codigo de get_results():
Código PHP:
Ver original
  1. function get_results($query = null, $output = OBJECT) {
  2.  
  3.         $this->func_call = "\$db->get_results(\"$query\", $output)";
  4.  
  5.         if ( $query )
  6.             $this->query($query);
  7.         else
  8.             return null;
  9.  
  10.         if ( $output == OBJECT ) {
  11.             // Return an integer-keyed array of row objects
  12.             return $this->last_result;
  13.         } elseif ( $output == OBJECT_K ) {
  14.             // Return an array of row objects with keys from column 1
  15.             // (Duplicates are discarded)
  16.             foreach ( $this->last_result as $row ) {
  17.                 $key = array_shift( get_object_vars( $row ) );
  18.                 if ( !isset( $new_array[ $key ] ) )
  19.                     $new_array[ $key ] = $row;
  20.             }
  21.             return $new_array;
  22.         } elseif ( $output == ARRAY_A || $output == ARRAY_N ) {
  23.             // Return an integer-keyed array of...
  24.             if ( $this->last_result ) {
  25.                 $i =0;
  26.                 foreach( (array) $this->last_result as $row ) {
  27.                     if ( $output == ARRAY_N ) {
  28.                         // ...integer-keyed row arrays
  29.                         $new_array[$i] = array_values( get_object_vars( $row ) );
  30.                     } else {
  31.                         // ...column name-keyed row arrays
  32.                         $new_array[$i] = get_object_vars( $row );
  33.                     }
  34.                     ++$i;
  35.                 }
  36.                 return $new_array;
  37.             }
  38.         }
  39.  
  40.     }
Conclusion cuando yo coji la web esta consulta mostraba dato1,dato2 y dato3.
Ahora hay 2 mas pero no los muestra , y si hago un var_dump de $items muestra solo los campos anteriores a mi modificacion.
No se si con esta info es suficiente.

Me he explicado?

Gracia suna vez más!