Foros del Web » Programando para Internet » PHP »

Sacar nombres de columnas de las consultas

Estas en el tema de Sacar nombres de columnas de las consultas en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 08/11/2012, 06:05
 
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
  #2 (permalink)  
Antiguo 08/11/2012, 07:18
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Sacar nombres de columnas de las consultas

Yo casi siempre lo hago de esta forma
Código PHP:
Ver original
  1. $info = '';
  2. foreach(.... as $k => $v){
  3.     if( $k == 0 ){
  4.         $info .= implode(',', array_keys($v));
  5.     }
  6.     .......
  7. }
Asumiendo que te devuelve un valor multidimensional y que la primera capa es en valor autonumérico y la segunda columna con su valor. Adaptalo a tu necesidad
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 08/11/2012, 09:10
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años, 6 meses
Puntos: 58
Respuesta: Sacar nombres de columnas de las consultas

Gracias por la respuesta.

Pues no, es un array asociativo, tiene los nombres de las columnas. He hecho esto pero queda un poco cutre:

Código PHP:
foreach($resultado as $fila) {        
            
//Imprimo los títulos
            
if (!isset($impreso))
            {                
                foreach(
$fila as $titulo => $campo)
                {
                    echo 
$titulo;                    
                }
                
$impreso true;            
            }
            foreach(
$fila as $campo) {             
            echo 
$campo;
            }
        } 
  #4 (permalink)  
Antiguo 08/11/2012, 17:16
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Sacar nombres de columnas de las consultas

Yo creo que no entendiste, porque exactamente lo haces Analiza el código que te coloqué para que lo puedas lograr.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 09/11/2012, 09:17
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años, 6 meses
Puntos: 58
Respuesta: Sacar nombres de columnas de las consultas

Gracias abimael, tienes razón. Perdona y gracias de nuevo

Etiquetas: columnas, nombres
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 18:44.