Foros del Web » Programando para Internet » PHP »

problemas con select anidados

Estas en el tema de problemas con select anidados en el foro de PHP en Foros del Web. Lectores de foro , tengo el siguiente problema tengo el siguiente modelo de datos tabla encuestas encuestas idencuesta PK autoincrement sid (numero identificacion de encuesta) ...
  #1 (permalink)  
Antiguo 12/09/2011, 12:05
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
problemas con select anidados

Lectores de foro , tengo el siguiente problema tengo el siguiente modelo de datos

tabla encuestas
encuestas
idencuesta PK autoincrement
sid (numero identificacion de encuesta)
gid
qid
title

tabla bouchers
bouchers

id_bouchers PK autoincrement
id_encuesta
sid (numero identificacion de encuesta)
identificador_usuario
fecha_hora
ip

lo que estoy intentando hacer es seleccionar los datos de la tabla encuesta donde sean encuesta validas en este caso donde el sid se encuestre en la tabla bouchers , a su vez los datos sid, gid, qid forman una campo de una tabla por lo cual estos datos los concateno creando un campo por ej : 1234X333X444 expongo mi codigo espero puedan echarme una manito ya que no me esta seleccionado los datos como los necesito .

Código PHP:
Ver original
  1. $sql_encuestas = "SELECT encuestas.idencuesta, encuestas.sid, encuestas.gid, encuestas.qid FROM encuestas";
  2.     $dblink3 = mysql_connect("localhost","xxx","xxxx"); mysql_select_db("xxx",$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.  
  9.     $sql_detalle_encuesta = "SELECT ".implode(',',$campos)." FROM lime_survey_".$filas['sid']."";  
  10.     $dblink4 = mysql_connect("localhost","xxx","xxx"); mysql_select_db("xxxx",$dblink4);   
  11.     $resultado_detalle_encuesta=mysql_query($sql_detalle_encuesta,$dblink4)or die(mysql_error());
  12.  
  13.         while($fields = mysql_fetch_array($resultado_detalle_encuesta)){
  14.    
  15.         foreach($fields as $key => $value){
  16.        
  17.             echo "campo: $key  valor:$value";
  18.             echo "<br>";
  19.             }
  20.     echo "<br>";
  21.         }                              
  22. }
  23.  
  24. }// cierra primer while


saludos y de antemano gracias
  #2 (permalink)  
Antiguo 12/09/2011, 14:29
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problemas con select anidados

A simple vista, no estas inicializando ni $campos ni $i, ademas de que, supongo que en algun lado deberia incrementarse $i.

Que obtienes si haces echo $sql_detalle_encuesta; ?
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 12/09/2011, 15:09
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: problemas con select anidados

Triby la consulta que me indicas lo que debe hacer es construir la consulta dependiendo del sid de la encuesta por ej si la la encuesta 2345 deberia acceder a la tabla lime_survey_2345 , al hacer el echo que me indicas obtengo lo siguiente y es exactamente lo que necesito habia un error de llaves , la idea es hacer un archivo que recorra cada una de las tablas que se generan dinamicamente algo asi como un cronjob si mal no me equivoco .

campos generados
tablas generadas
SELECT 93375X1375X29711 FROM lime_survey_93375SELECT 93375X1375X29711 FROM lime_survey_93375
SELECT 93375X1375X29711 FROM lime_survey_93375SELECT 93375X1375X29711 FROM lime_survey_93375
SELECT 93375X1375X29711 FROM lime_survey_93375SELECT 93375X1375X29711 FROM lime_survey_93375
SELECT 93375X1375X29711 FROM lime_survey_93375SELECT 93375X1375X29711 FROM lime_survey_93375
SELECT 93375X1375X29711 FROM lime_survey_93375SELECT 93375X1375X29711 FROM lime_survey_93375
SELECT 93375X1375X29711 FROM lime_survey_93375SELECT 93375X1375X29711 FROM lime_survey_93375
SELECT 93375X1375X29711 FROM lime_survey_93375SELECT 93375X1375X29711 FROM lime_survey_93375
SELECT 93375X1375X29711 FROM lime_survey_93375SELECT 93375X1375X29711 FROM lime_survey_93375
SELECT 93375X1375X29711 FROM lime_survey_93375SELECT 93375X1375X29711 FROM lime_survey_93375
SELECT 93375X1375X29711 FROM lime_survey_93375SELECT 93375X1375X29711 FROM lime_survey_93375

saludos y gracias por ayudarme

Etiquetas: anidados, mysql, select, sql, tabla, usuarios
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 18:55.