Foros del Web » Programando para Internet » PHP »

Prefijos en las columnas

Estas en el tema de Prefijos en las columnas en el foro de PHP en Foros del Web. Buenas! Vereis, tengo una tabla con varias columnas con nombres del estilo "puntos_comic_marvel", "puntos_comic_dc", etcetera. La cuestión es que la consulta la hago desde php, ...
  #1 (permalink)  
Antiguo 02/04/2008, 15:58
 
Fecha de Ingreso: abril-2008
Mensajes: 9
Antigüedad: 16 años
Puntos: 0
Prefijos en las columnas

Buenas!
Vereis, tengo una tabla con varias columnas con nombres del estilo "puntos_comic_marvel", "puntos_comic_dc", etcetera. La cuestión es que la consulta la hago desde php, y me gustaría saber si hay alguna manera de hacer algo parecido a:

SELECT puntos_comic_*
FROM tabla....
...

El asterisco seria para que coja todos los campos con el prefijo puntos_comic_. ¿Alguien sabe si es esto posible? Tengo dos soluciones de emergencia para esto, pero creo que sería mucho más limpio si se pudiese hacer una consulta de este tipo (coger varias columnas con un prefijo igual).
Gracias compañeros!
  #2 (permalink)  
Antiguo 02/04/2008, 16:59
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: Prefijos en las columnas

Una propuesta con PHP
Código PHP:
<?php
$link 
mysql_connect("localhost""""");//hago la conexión
mysql_select_db("tabla"$link);//conecto la base
mysql_query("SET NAMES UTF8");//yo uso UTF8, pero si no es tu caso, elimina la linea
$camposbuscados=array();//creo un array para cargar los nombres de los campos
$result mysql_query("SHOW COLUMNS FROM tabla LIKE 'puntos_comic_%'"); //parámetro de consulta para sacar los nombres de los campos de la tabla que cumplen la condición
if (mysql_num_rows($result)> 0) {while ($row mysql_fetch_array($result)) {$camposbuscados[]=$row['Field'];   }}//cargo en el array todos los nombres de campo
$cadenacampos=implode(", "$camposbuscados);//formo una cadena con los nombres de los campos separados por coma
$query="SELECT $cadenacampos FROM tabla";//introduzco la cadena en la consulta
$res=mysql_query($query);
while (
$array=mysql_fetch_array($res)){echo $array[0].' '.$array[1].'<br>';}//controlas el número de nombres, si quieres, mediante un count del array y luego muestras los campos refiriéndote a ellos mediante índice numérico
?>
A ver si te sirve...
  #3 (permalink)  
Antiguo 03/04/2008, 13:00
 
Fecha de Ingreso: abril-2008
Mensajes: 9
Antigüedad: 16 años
Puntos: 0
Re: Prefijos en las columnas

¡Perfecto compañero! No era necesario que me hicieras todo el script, pero muchas gracias de todos modos. No conocía la sentencia SHOW COLUMNS con el LIKE para identificar columnas... Bueno lo dicho, que me has sido de gran ayuda.
  #4 (permalink)  
Antiguo 08/04/2008, 09:32
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Prefijos en las columnas

Trasladado de BD a PHP. Favor no poner código de programación en BD.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
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 03:41.