Foros del Web » Programando para Internet » PHP »

Problema, no retorna todos los campos.

Estas en el tema de Problema, no retorna todos los campos. en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 04/10/2012, 09:56
 
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!
  #2 (permalink)  
Antiguo 04/10/2012, 12:36
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Problema, no retorna todos los campos.

He creado una nueva tabla llamada videos y al realizar :
Código PHP:
Ver original
  1. $items = $casedb->get_results( $casedb->prepare("SELECT * FROM videos", $parent) ) or die (mysql_error());

Me devulve :
Error Table 'qgc738.videos' doesn't exist...

Que puede estar pasando , ninguna de las modificaciones que realizo sobre las tablas existentes si creo nuevas tablas puedo accederlas desde php :s

Alguien tiene una ligera idea de lo que puede estar ocurriendo ??
  #3 (permalink)  
Antiguo 04/10/2012, 12:42
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 6 meses
Puntos: 394
Respuesta: Problema, no retorna todos los campos.

Esta completamente seguro que la base de datos que esta modificando es la misma base de datos que esta configurada en PHP ?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #4 (permalink)  
Antiguo 04/10/2012, 14:18
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Problema, no retorna todos los campos.

total y absolutamente seguro , entiendo que todo lo que cuento suena a estas mirando en otra db... soy consciente , pero lo he verificado.

He creado un php de prueba con el siguiente codigo que accede a la nueva tabla que he creado llamad videos:

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4.     $conexion121 = mysql_connect("servidor", "user", "pass");
  5. mysql_select_db("db", $conexion121);
  6. $queEmp = "SELECT * FROM videos WHERE idContenido =".$subid;
  7. $resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
  8. $totEmp = mysql_num_rows($resEmp);
  9. if ($totEmp> 0) {
  10.    while ($rowEmp = mysql_fetch_assoc($resEmp)) {
  11.       echo "<strong>".$rowEmp['url']."</strong><br>";
  12.  
  13.    }
  14. }
  15. ?>

Y me devuelve:

mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file

He buscado y se debe a lo siguiente:
http://marpada.net/blog/error-de-conexion-db-en-horde

Puede esto tener algo que ver con que todo lo que añado a la estructura de una tabla o una nueva tabla en si misma, sea inaccesible??

Etiquetas: mysql, retorna, sql, tabla
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 16:17.