Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Guardar los nombre de campos de una tabla en un array

Estas en el tema de Guardar los nombre de campos de una tabla en un array en el foro de PHP en Foros del Web. Hola, estoy un poco frustrado con un pequeño script que no puedo lograr que funcione, que como dice el titulo es para guardar el/los nombres ...
  #1 (permalink)  
Antiguo 08/08/2013, 18:59
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Guardar los nombre de campos de una tabla en un array

Hola, estoy un poco frustrado con un pequeño script que no puedo lograr que funcione, que como dice el titulo es para guardar el/los nombres de campos de una tabla en mysql, este es el código que tengo

Código PHP:
Ver original
  1. include('config.php');
  2. $q2 = "SELECT * FROM noticias";
  3. $result = mysql_query($q2,$conexion);
  4.  while ($line = mysql_fetch_assoc($result)) {
  5.  $s=0;
  6.  foreach ($line as $col_value) {
  7.  $field=mysql_field_name($result,$s);
  8.  $arrayc[$field] = $col_value;
  9.  $s++;
  10.  }
  11.  }

despues de guardarlo quiero, paso un parametro por url y compruebo si ese parametro esta en el array y hacer una consulta a la db de esta forma:

Código PHP:
Ver original
  1. $order = (empty($_GET['sort'])) ? 'ID' : strtoupper($_GET['sort']);
  2. if(!in_array($order, $arrayc)) {
  3.       $order = 'ID';
  4. $q="SELECT * FROM noticias ORDER BY ".$order;

pero no logro que resulte, alguna ayuda por favor que llevo varios intentos y no me resulta gracias
  #2 (permalink)  
Antiguo 08/08/2013, 20:00
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: Guardar los nombre de campos de una tabla en un array

Hola podrias usar "describe" de Mysql

include('config.php');
$q2 = "describe noticias";
$result = mysql_query($q2,$conexion);
while ($line = mysql_fetch_assoc($result)) {
$arrayc[]=$line["Field"];
}

Espero te sea de ayuda.
  #3 (permalink)  
Antiguo 08/08/2013, 20:19
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: Guardar los nombre de campos de una tabla en un array

Cita:
Iniciado por Erick_MD9 Ver Mensaje
Hola podrias usar "describe" de Mysql

include('config.php');
$q2 = "describe noticias";
$result = mysql_query($q2,$conexion);
while ($line = mysql_fetch_assoc($result)) {
$arrayc[]=$line["Field"];
}

Espero te sea de ayuda.
gracias, pero me da errores mira:

Código Error:
Ver original
  1. Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\prueba.php on line 7
  2.  
  3. Notice: Undefined variable: arrayc in C:\xampp\htdocs\prueba.php on line 11
  4.  
  5. Warning: in_array() expects parameter 2 to be array, null given in C:\xampp\htdocs\prueba.php on line 11
  #4 (permalink)  
Antiguo 08/08/2013, 20:38
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: Guardar los nombre de campos de una tabla en un array

Revisa tu conección a la base de datos, asumo que la estas haciendo antes de ejecutar el codigo.

No se ve de donde obtienes el valor de $conexion.

El error dice que que la query esta incorrecta.
Coloca:

var_dump($conexion);
$result = mysql_query($q2,$conexion);
if(!$result){echo mysql_error($conexion);}

pega tus resultados
  #5 (permalink)  
Antiguo 08/08/2013, 20:53
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: Guardar los nombre de campos de una tabla en un array

Fue un error mio jeje

Código PHP:
Ver original
  1. $order = (empty($_GET['sort'])) ? 'ID' : strtoupper($_GET['sort']);
  2. if(!in_array($order, $arrayc)) {
  3.       $order = 'ID'; // es que este campo no existe en la tabla y lo reemplaze por $order=$arrayc[0];
  4. $q="SELECT * FROM noticias ORDER BY ".$order;

Gracias por la ayuda, saludos

Etiquetas: campos, mysql, nombre, select, 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 12:27.