Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/11/2012, 06:05
alyciashape
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años, 6 meses
Puntos: 58
Sacar nombres de columnas de las consultas

Creo que normalmente me pasa al reves, que me sale le nombre y lo quiero quitar, pero esta vez no logro recoger el nombre de la columna. Esta es mi consulta y como la recorro.

Es el método de ejecutar consultas de mi clase:
Código PHP:
function consulta($consulta) {
        
$array = array ();
        
$resultado odbc_exec $this->conexion$consulta ) or die ( "Error en odbc_exec" );
        
$contador 0;
        while ( 
$row odbc_fetch_array $resultado) ) {                                
            foreach ( 
$row as $campo ) {                
                
$array [$contador] [] = TRIM $campo );
            }
            
$contador ++;
        }
        return 
$array;
    } 
Quiero realizar consultas sean como sean y devolver un array con los valores. Pero me gustaría que en la primera fila estuvieran los nombres de los campos.

Suponiendo que lanzo la consulta "SELECT nombre, telefono FROM cliente" pues lo dicho. Que me saliera en el array:
nombre telefono
juan 123456789
pepe 987654321

y así, bueno creo que está clarísimo.

En la función si añado un var_dump($row) dentro del while se ve que tiene índice pero no se como hacer para extraerlo en el foreach. ¿No se puede?
Esto es lo que devuelve dentro del while un var_dump:
array(2) { ["nombre"]=> string(60) "Cliente Tal tal tal" ["telefono"]=> string(40) "123456789" }

Saludos y gracias.

P.D. No logre saber que diferencia hay entre odbc_fetch_array, odbc_fetch_object, odbc_fetch_row ya leí y aunque entiendo el concepto da igual lo que ponga funcionan igual.

Vale que tontería ya logré añadirlo, es algo que ya sabía pero lo tenía olvidado. Con un foreach ( $fila as $titulo=>$campo ) queda solucionado. Pero ahora no logro mostrar ese array por pantalla mostrando el indice correspondiente (sin que se repita mil veces claro).

Es decir:
Código PHP:
        foreach($resultado as $fila)
        {                                        
            foreach(
$fila as $titulo=>$campo) {                                        
            echo 
$campo;
            }
        }
    } 
pero como puedo imprimir $titulo para que solo salga una vez? la primera. No se me ocurre.

Última edición por alyciashape; 08/11/2012 a las 06:17