Foros del Web » Programando para Internet » PHP »

consulta concatenar

Estas en el tema de consulta concatenar en el foro de PHP en Foros del Web. Lectores del foro tengo la siguiente consulta , estoy trabajando con un sistema de encuestas el cual a la hora de crear una nueva encuesta ...
  #1 (permalink)  
Antiguo 31/08/2011, 12:10
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
consulta concatenar

Lectores del foro

tengo la siguiente consulta , estoy trabajando con un sistema de encuestas el cual a la hora de crear una nueva encuesta crea una tabla con el prefijo lime_survey_idencuesta (lime_survey_9999) , los campos de estas tablas generadas se crean con el prefijo idencuestaXidseccionencuestaXidpregunta (ej: 9999X888X777) , mi script selecciona la encuesta pero necesito listar los datos de las tablas .

paso parametros a traves de url

Código PHP:
Ver original
  1. echo "<a href=index.php?op=registrosencuestas&sid=".$sid.">$nombreencuesta</a>";

recibo parametros

registro_encuestas.php

Código PHP:
Ver original
  1. $sid=$_GET['sid'];
  2. //print_r($_GET['sid']);
  3. $sql_encuestas = "SELECT
  4.                     lime_questions.gid,
  5.                     lime_questions.sid,
  6.                     lime_questions.qid
  7.                 FROM
  8.                     lime_questions WHERE lime_questions.sid=".$sid."";
  9.                    
  10. $resultado_encuestas=mysql_query($sql_encuestas,$link)or die(mysql_error('error al consultar los registros de encuestas'));
  11. while($row = mysql_fetch_array($resultado_encuestas)) {
  12.  
  13.  
  14. $identificador_encuesta=$row['sid'];
  15. $identificador_seccion=$row['gid'];
  16. $identificador_pregunta=$row['qid'];
  17.  
  18. $sql_detalle_encuesta = "SELECT * FROM lime_survey_".$sid."";
  19. $resultado_detalle_encuesta=mysql_query($sql_detalle_encuesta,$link)or die(mysql_error('error consulta tabla encuestas'));
  20.  
  21. //print_r($sql_detalle_encuesta);  
  22. $fecha=$row['submitdate'];
  23. echo "$identificador_encuesta".X."$identificador_seccion".X."$identificador_pregunta";
  24. //echo "$fecha";
  25. echo "<br>";
  26. }



entonces necesito crear el campo de la tabla con el prefijo mencionado anteriormente y recoger el dato que esta dentro de los campos , espero puedan ayudarme .

saludos y muchas gracias
  #2 (permalink)  
Antiguo 31/08/2011, 13:07
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: consulta concatenar

No entiendo cual es concretamente la pregunta, necesitas el sql para crear el campo?

cabe mencionar que tu identificador de campo tiene las comillas al revés.

Código PHP:
echo $identificador_encuesta 'X' $identificador_seccion 'X' $identificador_pregunta
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #3 (permalink)  
Antiguo 31/08/2011, 13:12
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: consulta concatenar

disculpa mi amigo si no me exprese bien a la hora de preguntar mi duda es si por ej:

puedo concatenar las varibles

Código PHP:
Ver original
  1. $identificador_encuesta=$row['sid'];
  2. $identificador_seccion=$row['gid'];
  3. $identificador_pregunta=$row['qid'];

en una sola

ej: $dato[sid][gid][qid];

y asi poder obtener el valor del campo , ya que esos tres valores son un campo de una tabla como dije anteriormente se crean con este formato 5555X444X222 , y asi poder crear el campo .

saludos y gracias
  #4 (permalink)  
Antiguo 31/08/2011, 13:23
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: consulta concatenar

algo así quizás?

Código PHP:
while ($row mysql_fetch_array($resultado_encuestas)) {
    
//voy guardando en un array los valores concatenados de a 3
    
$campos[$i]= $row['sid']. 'X'$row['gid']. 'X'$row['qid'];
}

foreach(
$campos as $campo){
    echo 
$campo;

__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #5 (permalink)  
Antiguo 31/08/2011, 13:31
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: consulta concatenar

exactamente funciono de lujo mi amigo , pero como puedo esos valores transformarlos al sql para listar los registros de los campos ?

saludos
  #6 (permalink)  
Antiguo 31/08/2011, 14:24
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: consulta concatenar

podrias darme la estructura de alguna de estas tablas como ejemplo
a ver si puedo hacerme un modelo mental.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #7 (permalink)  
Antiguo 31/08/2011, 14:29
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: consulta concatenar

h2swider , como comente las tablas generan automanticamente al crear una encuesta con sus respectivas preguntas ,

ej :
nombre_tabla
lime_survey_9999

campos

9999X4444X222
juan perez
pedro mujica

9999X4444X333
[email protected]
[email protected]

9999X4444X444
poblacion 1 casa 24
poblacion 2 casa 23

saludos

Última edición por matt_1985; 31/08/2011 a las 14:50
  #8 (permalink)  
Antiguo 31/08/2011, 14:55
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: consulta concatenar

entonces tu consulta no vendria a ser algo como

Para seleccionar un campo podrías:
Código PHP:
"SELECT ".$campos[$i]." FROM lime_survey_".$sid.""
Y si quisieras seleccionar todos los campos de tu array
Código PHP:
"SELECT ".implode(',',$campos[$i])." FROM lime_survey_".$sid.""
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #9 (permalink)  
Antiguo 31/08/2011, 15:05
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: consulta concatenar

mi amigo , nose si estoy implementando algo mal en mi codigo pero no me imprime nada

Código PHP:
Ver original
  1. $sid=$_GET['sid'];
  2. //print_r($_GET['sid']);
  3. $sql_encuestas = "SELECT
  4.                     lime_questions.gid,
  5.                     lime_questions.sid,
  6.                     lime_questions.qid
  7.                 FROM
  8.                     lime_questions WHERE lime_questions.sid=".$sid."";
  9.                    
  10. $resultado_encuestas=mysql_query($sql_encuestas,$link)or die(mysql_error('error al consultar los registros de encuestas'));
  11. while ($row = mysql_fetch_array($resultado_encuestas)) {
  12.  
  13.     $campos[$i]= $row['sid']. 'X'. $row['gid']. 'X'. $row['qid'];
  14.  
  15.     foreach($campos as $campo){
  16.  
  17.    
  18. $sql_detalle_encuesta = "SELECT ".implode(',',$campos[$i])." FROM lime_survey_".$sid."";
  19. $resultado_detalle_encuesta=mysql_query($sql_detalle_encuesta,$link)or die(mysql_error('error consulta tabla encuestas'));
  20.  
  21. echo $campo;
  22.    
  23. echo "<br>";
  24. }                              
  25. }

esos tres parametros mas las X forman un campo de una tabla ej : 9999X333x222

saludos
  #10 (permalink)  
Antiguo 31/08/2011, 15:08
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: consulta concatenar

en el implode no va el [$i] me olvide de sacarlo. Hacele un echo a esto para ver que consulta esta intentando hacer

Código PHP:
echo "SELECT ".implode(',',$campos)." FROM lime_survey_".$sid.""
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #11 (permalink)  
Antiguo 31/08/2011, 15:12
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: consulta concatenar

hice la modificacion que me indicas , pero a la hora de imprimir me imprime los solo los campos de las tablas pero no el resultado de los registros

el echo imprime esto ,

SELECT 32814X3329X50628 FROM lime_survey_32814
SELECT 32814X3329X50629 FROM lime_survey_32814
SELECT 32814X3329X50630 FROM lime_survey_32814
SELECT 32814X3329X50631 FROM lime_survey_32814

saludos
  #12 (permalink)  
Antiguo 31/08/2011, 15:14
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: consulta concatenar

La consulta parece tener sentido, si la tiras en el mysqlmyadmin, o el cliente de mysql que uses, 'te trae los resultados?
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #13 (permalink)  
Antiguo 31/08/2011, 15:16
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: consulta concatenar

si mi amigo la acabo de probar en el navicat y funciona correctamente , pero en el script no me imprime , de verdad raro .

mi codigo quedo asi

Código PHP:
Ver original
  1. $sid=$_GET['sid'];
  2. //print_r($_GET['sid']);
  3. $sql_encuestas = "SELECT
  4.                     lime_questions.gid,
  5.                     lime_questions.sid,
  6.                     lime_questions.qid
  7.                 FROM
  8.                     lime_questions WHERE lime_questions.sid=".$sid."";
  9.                    
  10. $resultado_encuestas=mysql_query($sql_encuestas,$link)or die(mysql_error('error al consultar los registros de encuestas'));
  11. while ($row = mysql_fetch_array($resultado_encuestas)) {
  12.  
  13.     $campos[$i]= $row['sid']. 'X'. $row['gid']. 'X'. $row['qid'];
  14.  
  15.     foreach($campos as $campo){
  16.  
  17.    
  18. $sql_detalle_encuesta = "SELECT ".implode(',',$campos)." FROM lime_survey_".$sid."";  
  19. $resultado_detalle_encuesta=mysql_query($sql_detalle_encuesta,$link)or die(mysql_error('error consulta tabla encuestas'));
  20.  
  21. echo $campo;   
  22.  
  23. echo "SELECT ".implode(',',$campos)." FROM lime_survey_".$sid."";  
  24. echo "<br>";
  25. }                              
  26. }
  #14 (permalink)  
Antiguo 31/08/2011, 15:20
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: consulta concatenar

me imagino que luego de hacer las consultas lo recorres con un while nuevamente, algo asi:

Código PHP:
$sql_detalle_encuesta "SELECT ".implode(',',$campos)." FROM lime_survey_".$sid."";
$resultado_detalle_encuesta=mysql_query($sql_detalle_encuesta,$link)or die(mysql_error('error consulta tabla encuestas'));

while(
$fields mysql_fetch_array($resultado_detalle_encuesta)){
    foreach(
$fields as $key => $value){
        echo 
"campo: $key  valor:$value";
    }

__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #15 (permalink)  
Antiguo 31/08/2011, 15:25
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: consulta concatenar

Muchas , gracias por tu tiempo y paciencia , seguire estudiando el tema .

Etiquetas: concatenar, mysql, registro, sql, 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 02:55.