Foros del Web » Programando para Internet » PHP »

Imprimir datos de un array de base de datos

Estas en el tema de Imprimir datos de un array de base de datos en el foro de PHP en Foros del Web. Lo que necesito es, sacar los datos de una consulta, con un fetch los voy recorriendo y quiero imprimir todos los datos sin tener que ...
  #1 (permalink)  
Antiguo 19/10/2012, 05:23
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Imprimir datos de un array de base de datos

Lo que necesito es, sacar los datos de una consulta, con un fetch los voy recorriendo y quiero imprimir todos los datos sin tener que saber los datos que contiene, no se si es posible.

Es decir. Tengo esto:
Código PHP:
$resultado "SELECT ...";
while (
$fila odbc_fetch_object($resultado))
{
echo 
$fila->nombre;

Pues bien, quiero recorrer todos los campos sin tener que saber su nombre, para que a partir de diferentes consultas pueda imprimir toda su información, tal cual.

He probado con $fila[0] pero no se por qué no funciona. $fila es un array bidimensional entiendo yo no? con el registro que está pasando resultado. O estoy equivocado?

$resultado es un array multidimensional? podría imprimirlo de ahí directamente o hay que hacer fetch de $resultado siempre?

Gracias por la ayuda.
  #2 (permalink)  
Antiguo 19/10/2012, 05:40
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Imprimir datos de un array de base de datos

Creo que encontraras la solucion aqui

http://www.php.net/manual/es/function.odbc-columns.php
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 19/10/2012, 06:09
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Respuesta: Imprimir datos de un array de base de datos

Gracias quimfv, entiendo que esto me dará un listado de los nombres de los campos para la fila no? El problema que tengo es que mi variable conexion, requerida para la función, está en una clase. No se como acceder a ella desde fuera de la clase.

Hago que al iniciarse la clase se conecte ya con la base de datos. Así:
var $conexion;
function __construct() {
$this->conexion = odbc_connect ('Clasges5', '', '') or die('Imposible conectar');
}

Como podría acceder desde fuera de la clase?
  #4 (permalink)  
Antiguo 19/10/2012, 08:23
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Respuesta: Imprimir datos de un array de base de datos

No entiendo tampoco por qué tengo que hacer:
while ($fila = odbc_fetch_object($resultado))
{
echo $fila->nombre;
}

Y no puedo hacer:
while ($fila = odbc_fetch_object($resultado))
{
echo $fila['nombre'];
}

¿que diferencia hay? Con MySQL si se puede hacer no? tiene que ver con odbc?


ACTUALIZACIÓN.
Vale, estaba haciendo odbc_fetch_object en lugar de array o row, mea culpa. Pero aún así, simplificandolo bastante, esto no funciona:

Código PHP:
$conexion odbc_connect ('Clasges5''''') or die('Imposible conectar');
$consulta "SELECT codigo, nombre FROM articulo";
$resultado odbc_exec($conexion$consulta) or die ('No se ha podido realizar la consulta');
while (
$fila odbc_fetch_row($resultado))
{
    echo 
$fila[0];
        echo 
"<br />";

No imprime nada.

Si hago un var_dump de $fila dentro del while, me devuelve un booleano true. Vamos que en fila no está metiendo los datos sino un true en plan, si hay resultados.

Curiosamente esto imprime -1
Código PHP:
$resultado odbc_exec($conexion$consulta) or die ('No se ha podido realizar la consulta');
$cantidad odbc_num_rows($resultado);
echo 
$cantidad
No tengo ni idea de por qué

Última edición por alyciashape; 19/10/2012 a las 09:01
  #5 (permalink)  
Antiguo 19/10/2012, 09:55
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Respuesta: Imprimir datos de un array de base de datos

Al final lo arreglé así:
Código PHP:
while ($fila odbc_fetch_object($resultado))
{
    foreach (
$fila as $clave => $valor){        
         echo 
$valor.";";     
    }
    echo 
"\n";

Se puede cerrar

Etiquetas: registro
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 02:43.