Foros del Web » Programando para Internet » PHP »

como crear una tabla si no conoces el # de campos

Estas en el tema de como crear una tabla si no conoces el # de campos en el foro de PHP en Foros del Web. Hola que tal.. Quisiera saber el como crear una tabla dependiendo de los datos del usuario por ejemplo el usuario que elija cuales campos necesita ...
  #1 (permalink)  
Antiguo 20/06/2011, 12:56
 
Fecha de Ingreso: mayo-2011
Mensajes: 55
Antigüedad: 13 años, 5 meses
Puntos: 1
como crear una tabla si no conoces el # de campos

Hola que tal..

Quisiera saber el como crear una tabla dependiendo de los datos del usuario por ejemplo el usuario que elija cuales campos necesita y de ese dato crear el numero de campos de la tabla como puedo hacer eso?
  #2 (permalink)  
Antiguo 20/06/2011, 12:58
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 9 meses
Puntos: 128
Respuesta: como crear una tabla si no conoces el # de campos

eso lo manejas con ciclos , puedes condicionar el where de tu consulta para ir jugando con las posibilidades de los campos si tienes código de lo que llevas por favor postealo , saludos
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #3 (permalink)  
Antiguo 20/06/2011, 13:03
 
Fecha de Ingreso: mayo-2011
Mensajes: 55
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: como crear una tabla si no conoces el # de campos

son 81 campos los que tiene mi base de datos aun asi eso me podria servir? me refiero a los ciclos
  #4 (permalink)  
Antiguo 20/06/2011, 13:05
Avatar de wsoul  
Fecha de Ingreso: octubre-2010
Mensajes: 190
Antigüedad: 14 años, 1 mes
Puntos: 13
Respuesta: como crear una tabla si no conoces el # de campos

81 campos tiene la base de datos ?

o crear una tabla con 81 datos y generar luego tablas apartir de los que selecionen de esa?

es que no te entiendo
__________________
Compra y Vender artículos en https://www.losredactores.com o una comunidad de webmasters ? https://webeamos.com
  #5 (permalink)  
Antiguo 20/06/2011, 13:09
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 9 meses
Puntos: 128
Respuesta: como crear una tabla si no conoces el # de campos

Da lo mismo la cantidad de campos, aunque 81 campos encuentro que es mucho para una tabla (de base de datos) , sería mejor el dicho divide y vencerás , el tema de los ciclos es para que te cree un <td> ó tr> según corresponda, entiendes lo que trato de decir?
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #6 (permalink)  
Antiguo 20/06/2011, 13:09
 
Fecha de Ingreso: mayo-2011
Mensajes: 55
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: como crear una tabla si no conoces el # de campos

si osea son 81 campos en total pero quiero que el usuario pueda elegir solo los campos que necesite y que se cree la tabla solo con los datos que necesita tengo un select multiple en donde estan todos los campos y por medio de un boton que se llama agregar pasa solo los campos que necesita hacia otro select multipe que es el que yo valido para realizar la tabla
  #7 (permalink)  
Antiguo 20/06/2011, 13:15
 
Fecha de Ingreso: mayo-2011
Mensajes: 55
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: como crear una tabla si no conoces el # de campos

Cita:
Iniciado por bUllan9ebrio Ver Mensaje
Da lo mismo la cantidad de campos, aunque 81 campos encuentro que es mucho para una tabla (de base de datos) , sería mejor el dicho divide y vencerás , el tema de los ciclos es para que te cree un <td> ó tr> según corresponda, entiendes lo que trato de decir?
Pues no entiendo muy bien como seria la condicion del ciclo
  #8 (permalink)  
Antiguo 20/06/2011, 13:17
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 9 meses
Puntos: 128
Respuesta: como crear una tabla si no conoces el # de campos

Ok, en este caso te convendría que al momento de que llegaran las variables realizaras la consulta, lo ideal sería mas menos esto :

Código PHP:
Ver original
  1. $mi_variable_que_sirve_de_campo=$_POST['variable'];
  2. $mi_segunda_variable_que_sirve_de_campo=$POST['variable2'];
  3. $sql='';
  4. $sql.="SELECT ";
  5. //ciclo para llamar los campos
  6. $sql.=" $mi_variable_que_sirve_de_campo, ";
  7. //luego sería $mi_segunda_variable_que_sirve_de_campo etc....
  8. //cierras el ciclo y completas la consulta
  9. $sql.=" WHERE campo='$el_campo_que_nececitas' ";
  10. // en caso de traer hartos campos en el where puedes realizar otro ciclo
  11.  
  12.  
  13. //otra idea sería similar, comprobar campo por campo
  14. $sql='';
  15. $sql.="SELECT ";
  16. isset ($mi_variable_que_sirve_de_campo)
  17. $sql.=" el_campo_que_nececites,";
  18. isset ($mi_segunda_variable_que_sirve_de_campo)
  19. $sql.=" el_segundo_campo_que_necesites";
  20. //asi sucesivamente

Espero que te quede claro más menos la idea, saludos




PD: Ciclo lo puedes utilizar para cuando lo muestres por pantalla
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #9 (permalink)  
Antiguo 20/06/2011, 13:18
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años, 7 meses
Puntos: 116
Respuesta: como crear una tabla si no conoces el # de campos

ps lo puedes hacer un un ciclo, extrayendo los registros de la BD, y con una condicion, si el campo es null o es "" que no lo imprima, y que solo imprima los datos que si estan llenados.

Solo una sugerencia asimilada, ya que no tengo al 100% entendido aún tu problema.
__________________
Programador jQuery & PHP
  #10 (permalink)  
Antiguo 20/06/2011, 13:36
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: como crear una tabla si no conoces el # de campos

Si entendí tu problema, yo creo que lo que debes hacer es mostrar en algún lugar con cheboxs o bien con un select múltiple los campos que le vas a permitir usar al usuario, para que él marque o seleccione los que quiere y a partir de ahí ya puedes hacer tu consulta mostrando los campos que el usuario eligió. Incluso podrías guardar un archivo tipo configuración los campos elegidos por el usuario para que en una próxima consulta ya los tenga marcados por defecto.
  #11 (permalink)  
Antiguo 20/06/2011, 13:41
 
Fecha de Ingreso: mayo-2011
Mensajes: 55
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: como crear una tabla si no conoces el # de campos

Cita:
Iniciado por ocp001a Ver Mensaje
Si entendí tu problema, yo creo que lo que debes hacer es mostrar en algún lugar con cheboxs o bien con un select múltiple los campos que le vas a permitir usar al usuario, para que él marque o seleccione los que quiere y a partir de ahí ya puedes hacer tu consulta mostrando los campos que el usuario eligió. Incluso podrías guardar un archivo tipo configuración los campos elegidos por el usuario para que en una próxima consulta ya los tenga marcados por defecto.
si de hecho lo tengo en un select multiple pero el problema es al momento de hacer la tabla para que dependiendo del numero de campos que existen en el select multiple sea el numero de campos que se creen en la tabla
  #12 (permalink)  
Antiguo 20/06/2011, 13:48
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: como crear una tabla si no conoces el # de campos

Bien, si entendí entonces vas a crear una tabla a partir de campos seleccionados de otra.

Si ya tienes el select múltiple, cuál es el problema, ¿que no sabes la sintaxis mysql para crear una tabla o que no sabes cómo recibir la info del select para almar la consulta?
  #13 (permalink)  
Antiguo 20/06/2011, 13:58
 
Fecha de Ingreso: mayo-2011
Mensajes: 55
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: como crear una tabla si no conoces el # de campos

Cita:
Iniciado por ocp001a Ver Mensaje
Bien, si entendí entonces vas a crear una tabla a partir de campos seleccionados de otra.

Si ya tienes el select múltiple, cuál es el problema, ¿que no sabes la sintaxis mysql para crear una tabla o que no sabes cómo recibir la info del select para almar la consulta?
esque el problema es que yo como programador no se cuantos campos va a necesitar el usuario no se el numero de campos que pondra en el select multiple pueden ser 2 campos o 81 campos no lo se
  #14 (permalink)  
Antiguo 20/06/2011, 14:01
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 9 meses
Puntos: 128
Respuesta: como crear una tabla si no conoces el # de campos

Cita:
Iniciado por bon3 Ver Mensaje
esque el problema es que yo como programador no se cuantos campos va a necesitar el usuario no se el numero de campos que pondra en el select multiple pueden ser 2 campos o 81 campos no lo se

Compadre y la idea que te postie yo no te sirve?
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #15 (permalink)  
Antiguo 20/06/2011, 14:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: como crear una tabla si no conoces el # de campos

Si el problema esta en no saber el número de campos, entonces deberías plantear la duda.

¿Exactamente de que eres capaz?

No es necesario enumerar los campos en un formulario para saber cuantos son, simplemente hay que saber usar los name correctos:
Código HTML:
<input name="algo[]"/> 
Así no importa cuantos campos del mismo tipo tengas, al final lo que recibes en php es un array que es fácilmente iterable.

La clave precisamente no está en saber la cantidad de campos requeridos, sino en la forma dinámica de representarlos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #16 (permalink)  
Antiguo 20/06/2011, 14:16
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: como crear una tabla si no conoces el # de campos

Entonces tu problema es lo que decía en la primer opción, que no sabes cómo recibir la información de que campos quiere el usuario y a partir de ahí armar la consulta.
Si tienes un select múltiple y se llama por ejemplo campos:
Código HTML:
Ver original
  1. <select name="campos">
  2.     <option value="nombre_campo1">nombre_campo1</option>
  3.     <option value="nombre_campo2">nombre_campo2</option>
  4.     <option value="nombre_campo2">nombre_campo3</option>
  5.     .
  6.     .
  7.     .
Los vas a recibir como un arreglo así:

Código PHP:
Ver original
  1. $_POST["campos"];

y podrías recorrerlo:

Código PHP:
Ver original
  1. foreach($_POST["campos"] as $n=>$campo)
  2.   $consulta[]="$campo VARCHAR(20)";
Luego hacer
Código PHP:
Ver original
  1. $consulta=implode(",",$consulta);
y finalmente:

Código PHP:
Ver original
  1. mysql_query("CREATE TABLE mi_tabla ($consulta)");

Si todos los campos van a tener el mismo tamaño no habría problema, pero si vas a crear una tabla "espejo" respetando el tipo y tamaño de cada campo, tendrías que analizar campo por campo de qué tipo es y qué tamaño tiene para duplicarlo.
  #17 (permalink)  
Antiguo 20/06/2011, 16:30
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 10 meses
Puntos: 209
Respuesta: como crear una tabla si no conoces el # de campos

con alter table puedes agregarle más campos después de creada o eliminarles, eso lo puedes hacer dentro de tu ciclo y si está activada esa selección, pues le agregas ese nuevo campo

Etiquetas: campos, 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 22:16.