Foros del Web » Programando para Internet » PHP »

crear nuevas tablas apartir de datos

Estas en el tema de crear nuevas tablas apartir de datos en el foro de PHP en Foros del Web. Hola, Espero me puedan ayudar con esto ya que no tengo ni idea como empezar. Tengo una base de datos en la cual hay una ...
  #1 (permalink)  
Antiguo 08/04/2013, 10:39
 
Fecha de Ingreso: febrero-2013
Mensajes: 11
Antigüedad: 11 años, 2 meses
Puntos: 0
Pregunta crear nuevas tablas apartir de datos

Hola,

Espero me puedan ayudar con esto ya que no tengo ni idea como empezar.

Tengo una base de datos en la cual hay una tabla con los datos:

Posición Nombre Tabla Nivel
1 Juan 1 1
2 Pedro 1 1
3 Francisco 1 1
4 Pepe 1 1
5 Chucho 1 1
6. Rafael 1 1
7. Leonor 1 1
8 Marcela 1 1
9 Lady 1 1
10 Gaga 1 1
11 Shakira 1 1
12 Ismael 1 1
13 Leo 1 1
14 Sergio 1 1
15 Jhon 1 1

En cada "tabla" deben existir solo 15 posiciones y una vez se llenen esas 15 posiciones, la tabla se dividirá en 2, en donde los usuarios pasaran a ocupar las siguientes posiciones1

TABLA 1A
Posición Nombre Tabla Nivel
1 (3) Francisco 1 1
2 (5) Chucho 1 1
3 (7) Leonor 1 1
4 (9) Lady 1 1
5 (11) Shakira 1 1
6 (13) Leo 1 1
7 (15) Jhon 1 1

TABLA 1B
Posición Nombre Tabla Nivel
1. (2) Pedro 1 1
2 (4) Pepe 1 1
3 (6) Rafael 1 1
4 (8) Marcela 1 1
5 (10) Gaga 1 1
6 (12) Ismael 1 1
7 (14) Sergio 1 1
8 (1) Juan 1 2

Es decir al llegar al registro no. 15 de cada "tabla" esta se debe dividir en dos por ej. 1a y 1b en la 1a irían las "posiciones" pares y en la 1b las "posiciones" impares y el usuario que encabezaba la tabla 1, nivel 1 pasaría al puesto 8 de la tabla 1a pero en nivel 2.

La idea es que el proceso se repita en todas las "tablas": 1 (1a)(1b),2 (2a) (2b), 3 (3a) (3b), 4 (4a)(4b), etc,

Les agradezco cualquier ayuda que me puedan brindar.

Última edición por Rocapa; 08/04/2013 a las 10:49 Razón: presentación
  #2 (permalink)  
Antiguo 08/04/2013, 10:50
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: crear nuevas tablas apartir de datos

Holas, Rocapa.

Según logro entender, desde una tabla en tu base de datos, obtienes los registros con los cuales llenar algún tipo de tabla programística (HTML, array PHP) y estas tablas son las que quieres mostrar al público, no?

Si es así, tendrías que hacer un simple llenado de las tablas de 15 filas dentro del bucle que lee los datos de la base de datos. Algo como:

Código PHP:
// no sé en qué base datos trabajas, el ejemplo está en Mysql
// con esto, creas un arreglo de tablas:
$tabla = array();
$t 0// contador de tablas
$f 0// contador de filas
while ($fila mysql_fetch_assoc($result))
{
 if (
$f == 15)
 { 
   
$f 0;
   
$t++;
 }
 
$tabla[$t][] = $fila;
 
$f++;

Luego haces otro ciclo, donde recorres el array de $tabla, y ahí vas creando las subtablas que quieres, usando una lógica similar...

Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #3 (permalink)  
Antiguo 08/04/2013, 11:01
 
Fecha de Ingreso: febrero-2013
Mensajes: 11
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: crear nuevas tablas apartir de datos

Hola quinqui, de antemano gracias por tu ayuda.

Si tienes razón ese es el tipo de tablas que quiero mostrar al público.

Y efectivamente es con una base de datos de Mysql, la verdad es que soy muy novato en esto,, me podrías ayudar con un ejemplo del array, en este caso para guiarme.

Gracias nuevamene
  #4 (permalink)  
Antiguo 08/04/2013, 11:04
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: crear nuevas tablas apartir de datos

Pues la manera mas facil es con mysql

Código MySQL:
Ver original
  1. create table tabla1a
  2.   select *  from tabla
  3.   WHERE mod(posicion,2) = 0;
  4.  create table tabla1b
  5.   select *  from tabla
  6.   WHERE mod(posicion,2) <> 0;

Revisa los condicionales, pero la idea seria esa

En el aplicativo la idea seria que antes de ingresar un dato verificaras con num_rows() cuantos registros tienes, si tienes 15 no le dejas ingresar nuevos datos y le dices que creas las dos tablas. Obviamente deberias verificar que tabla 1a y 1b no existen previamente para hacer esta opción una sola vez.

Tengo una duda, para que necesitas hacer eso?
__________________
Blog de humor http://elcuasatar.net63.net/

Última edición por cuasatar; 08/04/2013 a las 11:16
  #5 (permalink)  
Antiguo 08/04/2013, 11:42
 
Fecha de Ingreso: febrero-2013
Mensajes: 11
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: crear nuevas tablas apartir de datos

Es que tenemos una fundación y la idea es que cada persona traiga 15 o 20 personas, luego esta persona recibe como premio por ejemplo una capacitación y pasa a otro nivel (2) luego debe estar pendiente que las otras personas que traiga, hagan los mismo y así cada uno ha de traer 15 o 20, esa mas o menos es la idea.

Unas preguntas.

1. No hay manera de crear las tablas automáticamente sin tener que especificar 1a, 1b, 2a, etc?

2. Con el código que me acabas de enviar de crear tablas, el código anterior que me haboias enviado como lo puedo utilizar?
Código PHP:
Ver original
  1. // no sé en qué base datos trabajas, el ejemplo está en Mysql
  2. // con esto, creas un arreglo de tablas:
  3. $tabla = array();
  4. $t = 0; // contador de tablas
  5. $f = 0; // contador de filas
  6. while ($fila = mysql_fetch_assoc($result))
  7. {
  8.  if ($f == 15)
  9.  {
  10.    $f = 0;
  11.    $t++;
  12.  }
  13.  $tabla[$t][] = $fila;
  14.  $f++;
  15. }


3. Como le indico al sistema que al llegar a los 15 registros por tabla, me cree dos tablas nueves?

Te agradezco
  #6 (permalink)  
Antiguo 08/04/2013, 11:52
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: crear nuevas tablas apartir de datos

Mira si eso lo quieres hacer solo para cambiar de nivel a una persona no me parece nada eficiente, que pasa cuando tengas 10,000 personas?? tendras muchisimas tablas con 15 registros unicamente....

Piensa un poco mejor tu idea porque lo que estas pensando te hara un quebradero de cabeza...
  #7 (permalink)  
Antiguo 08/04/2013, 11:58
 
Fecha de Ingreso: febrero-2013
Mensajes: 11
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: crear nuevas tablas apartir de datos

Si es cierto.

es esa la razón por la que solo había creado una tabla en la bd, y dentro de ella un espacio registro llamado "tabla", pues pensé que había alguna manera de que en el momento de completar los 15 registros, con el registro "tabla1" se pudiera generar una nueva vista que se llamara "tabla1a" la cual seleccionara las posiciones impares y otra vista "tabla1b" que seleccionara las pares 8 y 7. Pero no doy con el modo de hacerlo.
  #8 (permalink)  
Antiguo 08/04/2013, 12:08
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: crear nuevas tablas apartir de datos

Mira no veo razon por la cual debas crear tablas o vistas adicionales...

Suponiendo que yo he soy miembro se tu fundacion y si únicamente lo que te interesa saber es cuantas personas he llevado, para cambiarme de clasificacion no necesariamente debes estar creando nuevas tablas en base cada vez que alguien llegue a "15 o 20"
  #9 (permalink)  
Antiguo 08/04/2013, 12:12
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: crear nuevas tablas apartir de datos

Cita:
Iniciado por Rocapa Ver Mensaje
Si es cierto.

es esa la razón por la que solo había creado una tabla en la bd, y dentro de ella un espacio registro llamado "tabla", pues pensé que había alguna manera de que en el momento de completar los 15 registros, con el registro "tabla1" se pudiera generar una nueva vista que se llamara "tabla1a" la cual seleccionara las posiciones impares y otra vista "tabla1b" que seleccionara las pares 8 y 7. Pero no doy con el modo de hacerlo.
Ostia, si se me hacia muy raro lo que querias hacer. Eso de crear x subtablas es poco o nada eficiente.

Lo que a mi se se ocurre (ojo, idea rapida sin meditarla mucho) es crear una tabla usuarios, otra tabla niveles y una tabla intermedia que relaciona a las dos. Tu debes de alguna manera crear las reglas para asignar el usuario al nivel. Es mas facil y adaptable porque si con el tiempo las reglas de juego cambian lo unico que cambia es la tabla con las reglas pero no asi los registros. Creo que incluso se le podria meter otra tabla mas (tabla donde se relaciona quien llego a la fundación y quien lo invito) para complicar la cosa pero la idea es que te apoyes en tablas auxiliares (erso si te tocara usar mucho inner join), no que partas una tabla unica (poco util)
__________________
Blog de humor http://elcuasatar.net63.net/
  #10 (permalink)  
Antiguo 08/04/2013, 12:29
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: crear nuevas tablas apartir de datos

Uhm, pues lo que realmente querías no es lo que yo había entendido. Creía que las subtablas eran para mostrarlas al público en tiempo de ejecución, pero que los registros estaban siempre en la base de datos en una sola tabla, no que quisieras guardar lo generado en las subtablas...

Como te han dicho los demás, no es muy prudente llenar una tabla destinada para una cosa (usuarios) con datos extras (recomendaciones y eso). Apoyo la moción de cuasatar de que crees tablas relacionales. Investiga sobre modelamiento de base de datos, sobre el modelo entidad-relación, para que así puedas diseñar una base de datos más eficiente y no redundante. Teniendo un modelo de datos bien diseñado, la programación se hace casi sola :)

Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*

Etiquetas: creación, dependencias, mysql, nuevas, 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 17:38.