Foros del Web » Programando para Internet » PHP »

recorrer multiples tablas generadas dinamicamente

Estas en el tema de recorrer multiples tablas generadas dinamicamente en el foro de PHP en Foros del Web. Lectores del foro es posible recorrer multiples tablas de forma secuencial, es decir cada tabla se me genera de forma dinamica en mi bd por ...
  #1 (permalink)  
Antiguo 23/09/2011, 12:07
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
recorrer multiples tablas generadas dinamicamente

Lectores del foro es posible recorrer multiples tablas de forma secuencial, es decir cada tabla se me genera de forma dinamica en mi bd por ej con un sufijo con el siguiente formato
lime_survey_123 , es posible de alguna forma hacer un for o algo que las vaya seleccionando una a una .

Código PHP:
Ver original
  1. $sql_encuestas = "SELECT encuestas.sid, encuestas.gid, encuestas.qid, encuestas.title FROM encuestas";
  2.     $dblink3 = mysql_connect("localhost","xxx","xxx"); mysql_select_db("bdA",$dblink3);                        
  3.     $resultado_encuestas=mysql_query($sql_encuestas,$dblink3)or die(mysql_error());
  4.         while ($filas = mysql_fetch_array($resultado_encuestas)) {
  5.  
  6.             $campos[$i]= $filas['sid']. 'X'. $filas['gid']. 'X'. $filas['qid'];
  7.  
  8.     $sql_detalle_encuesta = "SELECT ".implode(',',$campos)." FROM lime_survey_".$filas['sid']."";  
  9.     $dblink4 = mysql_connect("localhost","xxx","xxx"); mysql_select_db("bdB",$dblink4);
  10.     $resultado_detalle_encuesta=mysql_query($sql_detalle_encuesta,$dblink4)or die(mysql_error());
  11.  
  12.         while($fields = mysql_fetch_array($resultado_detalle_encuesta)){
  13.    
  14.         foreach($fields as $key => $value){
  15.            
  16.        
  17.         echo "campo: $key  valor:$value";
  18.             echo "<br>";
  19.             }
  20.     echo "<br>";
  21.         }  
  22.                                
  23. }

saludos

Última edición por matt_1985; 23/09/2011 a las 12:21
  #2 (permalink)  
Antiguo 23/09/2011, 12:38
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: recorrer multiples tablas generadas dinamicamente

fijate esto primero:
te conectas a otra db en medio de otra, lo mas grave es que necesitas la primera abierta y no la reabris
hay ya tenes algo muy mal.

el indice $i en $campos[$i] no esta definido si hace nada, si queres que acumule solo dejalo vacio: $campos[]
  #3 (permalink)  
Antiguo 23/09/2011, 12:45
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: recorrer multiples tablas generadas dinamicamente

gracias por comentar patriarke , perdona mi ignoracia pero nose como como solucionar lo que me indicas .

Cita:
te conectas a otra db en medio de otra, lo mas grave es que necesitas la primera abierta y no la reabris
hay ya tenes algo muy mal.
saludos y gracias
  #4 (permalink)  
Antiguo 23/09/2011, 13:07
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: recorrer multiples tablas generadas dinamicamente

La verdad es que yo no te he entendido muy bien, pero si quieres recorrer las tablas de una base de datos, puedes hacer un "show tables" te dará un listado de todas las tablas de una base de datos.
  #5 (permalink)  
Antiguo 23/09/2011, 13:11
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: recorrer multiples tablas generadas dinamicamente

gogupe gracias por comentar , mi problema es que tengo un sistema de encuestas , el sistema en si por cada encuesta genera una tabla es por ello que debo extraer datos de multiples tablas y copiarlos en otra base de datos, espero haber sido un poco mas claro .

Saludos y gracias
  #6 (permalink)  
Antiguo 23/09/2011, 13:22
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: recorrer multiples tablas generadas dinamicamente

vale pero si haces esto:

Código PHP:
$sql="SHOW TABLES";

while (
$row=mysql_fetch_assoc($sql)
    {
        
$nombre_tabla=$row[0];
        
        
$sql_1="SELECT * FROM ".$nombre_tabla;
            ... 
resto del código    
    
    

así podrás coger toda la información de cada tabla ¿no?
  #7 (permalink)  
Antiguo 23/09/2011, 15:00
Avatar de Miztli  
Fecha de Ingreso: abril-2007
Mensajes: 39
Antigüedad: 17 años
Puntos: 1
Respuesta: recorrer multiples tablas generadas dinamicamente

Retomando tu código, quedaría de la siguiente manera:

Código:
$dblink3 = mysql_connect("localhost","xxx","xxx"); mysql_select_db("bdA",$dblink3);                       

$dblink4 = mysql_connect("localhost","xxx","xxx"); mysql_select_db("bdB",$dblink4); 

$sql_query = "SELECT encuestas.sid, ...";
$resultado=mysql_query($sql_query,$dblink3)or die(mysql_error());

while ($filas = mysql_fetch_array($resultado)) {
    $campos[$i]= $filas['sid']. 'X'. $filas['gid']. 'X'. $filas['qid']
    $sql_detalle_encuesta = "SELECT ".implode(',',$campos)." FROM lime_survey_".$filas['sid']."";  

    $resultado_detalle=mysql_query($sql_detalle_encuesta,$dblink4)or die(mysql_error());

    while($fields = mysql_fetch_array($resultado_detalle)){
           foreach($fields as $key => $value){
                 echo "campo: $key  valor:$value";
                 echo "<br>";
           }
           echo "<br>";
        }   
}
  #8 (permalink)  
Antiguo 26/09/2011, 07:30
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: recorrer multiples tablas generadas dinamicamente

Estimados e arreglado el problema de la conexion de la siguiente forma, pero como podria crear un bucle o algo que me recorriera todas las tablas con el prefijo , vale decir lime_survey_123, lime_survey_654 etc etc ..


Código PHP:
Ver original
  1. $bd = mysql_connect("localhost","xxx","xxx");
  2.  
  3.     mysql_select_db("bd1",$bd);
  4.     $sql_encuestas = "SELECT encuestas.sid, encuestas.gid, encuestas.qid, encuestas.title FROM encuestas";                     
  5.     $resultado_encuestas=mysql_query($sql_encuestas,$bd)or die(mysql_error());
  6.         while ($filas = mysql_fetch_array($resultado_encuestas)) {
  7.  
  8.             $campos[]= $filas['sid']. 'X'. $filas['gid']. 'X'. $filas['qid'];
  9.    
  10.            
  11.     mysql_select_db("bd2",$bd);
  12.     $sql_detalle_encuesta = "SELECT ".implode(',',$campos)." FROM lime_survey_".$filas['sid']."";  
  13.     $resultado_detalle_encuesta=mysql_query($sql_detalle_encuesta,$bd)or die(mysql_error());
  14.  
  15.         while($fields = mysql_fetch_array($resultado_detalle_encuesta)){
  16.    
  17.         foreach($fields as $key => $value){
  18.  
  19.         echo "campo: $key  valor:$value";
  20.        
  21.             echo "<br>";
  22.            
  23.             }
  24.         }  
  25.                                
  26. }

saludos
  #9 (permalink)  
Antiguo 27/09/2011, 12:19
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
recorrer multiples tablas que se crean de forma dinamica

Lectores del foro , tengo el siguiente problema del cual necesito de su orientacion
tengo un sistema de encuestas que genera tablas de forma dinamica vale decir que al momento de crear una encuesta me crea una tabla para esta supongamos en caso creo la encuesta uno y me genera una tabla de la siguiente forma lime_survey_1 y asi sucesivamente con cada encuesta que creo a su vez necesito extraer ciertos datos de las tablas que se han generado mi problema es como crear una consulta que sea capaz de recorrer todas estas tablas ? pongo el codigo haber si me pueden echar una manito .

Código PHP:
Ver original
  1. mysql_select_db("baseA",$bd);
  2.     $sql_survey=sprintf("SELECT lime_surveys.sid FROM lime_surveys");                  
  3.     $resultado_survey=mysql_query($sql_survey,$bd)or die(mysql_error());
  4.         while ($row_s = mysql_fetch_array($resultado_survey)) {
  5.            
  6.            
  7.     mysql_select_db("baseB",$bd);
  8.     $sql_encuestas = "SELECT encuestas.sid, encuestas.gid, encuestas.qid, encuestas.title FROM encuestas";                     
  9.     $resultado_encuestas=mysql_query($sql_encuestas,$bd)or die(mysql_error());
  10.    
  11.         while ($filas = mysql_fetch_array($resultado_encuestas)) {
  12.             $campos[]= $filas['sid']. 'X'. $filas['gid']. 'X'. $filas['qid'];
  13.    
  14.            
  15.     mysql_select_db("baseA",$bd);  
  16.     $sql_detalle_encuesta = "SELECT ".implode(',',$campos)." FROM lime_survey_".$filas['sid']."";  
  17.     $resultado_detalle_encuesta=mysql_query($sql_detalle_encuesta,$bd)or die(mysql_error());
  18.  
  19.         while($fields = mysql_fetch_array($resultado_detalle_encuesta)){
  20.    
  21.         foreach($fields as $key => $value){
  22.  
  23.         echo "campo: $key  valor:$value";
  24.        
  25.             echo "<br>";
  26.            
  27.            
  28.            
  29.         }
  30.             }  
  31.                 }
  32.                     }

saludos y gracias

Etiquetas: dinamica, dinamicamente, multiples, mysql, sql, tabla, tablas, formulario
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 21:24.