Foros del Web » Programando para Internet » PHP »

problema al ejecutar consulta sql con group_concat en php

Estas en el tema de problema al ejecutar consulta sql con group_concat en php en el foro de PHP en Foros del Web. Hola a todos, mediante POST, recibo una variable de un formulario con el fin de hacer una consulta sql, lo que deseo es mostrar en ...
  #1 (permalink)  
Antiguo 24/01/2011, 14:19
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
problema al ejecutar consulta sql con group_concat en php

Hola a todos, mediante POST, recibo una variable de un formulario con el fin de hacer una consulta sql, lo que deseo es mostrar en un mismo textfield, un listado de empresas en las cuales ha trabajado la misma persona

Aqui el modelo de mi tabla:

Código MySQL:
Ver original
  1. CREATE TABLE `empresas_trabajo_egresado` (
  2.   `NUM_CED_EGR` int(11) NOT NULL,
  3.   `NIT_EMP` int(11) NOT NULL,
  4.    PRIMARY KEY  (`NUM_CED_EGR`,`NIT_EMP`),
  5.   KEY `FK_EMPRESAS_TRABAJO_EGRESADO2` (`NIT_EMP`),
  6.  
  7. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

La consulta la quiero ver de la siguiente forma:
Por ejemplo para ver las empresas de una persona cuyo NUM_CED_EGR=15

Entonces me mostraria:

CEDULA
15

EMPRESAS
Empresa 1 , Empresa 2

Para hacer esta consulta, utilizo la funcion GROUP_CONCAT. Directamente en el motor la consulta me arroja los resultados esperados, pero al hacerla sobre php, no me arroja resultados

Aqui mi consulta en php:

Código PHP:
Ver original
  1. <html>
  2. <head>
  3.  
  4. </head>
  5. <body>
  6. <?
  7. //recibo el valor del textfield
  8. $cedula=$_POST['cedula'];
  9. //conexion con mySQL y con base de datos
  10. @ $db = new mysqli('localhost', 'root', 'root', 'egresados');
  11.  
  12.  {
  13.      echo ' Error: No se pudo conectar a la base de datos, consulte a su administrador.  Por favor intente de nuevo!!.';
  14.      exit;
  15.  }
  16. // consulta
  17. query="select e.NUM_CED_EGR, e.NOM_EGR, e.APE_EGR,  GROUP_CONCAT(em.RAZ_SOC_EMP separator " - ") as empresas, from egresado e, empresa em, empresas_trabajo_egresado ete  where  ete.NIT_EMP=em.NIT_EMP and e.NUM_CED_EGR=ete.NUM_CED_EGR    and  e.NUM_CED_EGR='$cedula' GROUP BY (ete.NUM_CED_EGR)";
  18.  
  19. $result = $db->query($query);
  20. $num_results = $result->num_rows;
  21. // si no hay resultas
  22.  
  23. if($num_results==0){
  24.    
  25.     echo '<h2>El egresado no registra información laboral</h2>';
  26.    
  27.     echo "<a href='buscar.php' a style='text-decoration:none;' > <p><b> Buscar nuevo egresado</b>.</a></p>";
  28.     exit;
  29.     }
  30.  
  31.  
  32. echo '<p><br>';
  33.  
  34. for ($i=0; $i <$num_results; $i++)
  35.   {
  36.      $row = $result->fetch_assoc();
  37.      
  38.  
  39.      
  40.   }
  41.  
  42.  
  43.    
  44. $db->close();
  45.  
  46. ?>
  47.  
  48. //Ahora por medio de cajas de texto muestro los resultados:
  49.  
  50. CEDULA  :
  51. <input type="text" name="cedula" id="cedula"  readonly="readonly" value="<?php echo $row["NUM_CED_EGR"]?>"/>
  52.  
  53. </br>
  54.  
  55. NOMBRES:
  56. <input type="text" name="nombres" id="nombres" readonly="readonly" value="<?php echo $row["NOM_EGR"]?>"/>
  57.  
  58. </br>
  59.  
  60. EMPRESAS:
  61. <input type="text" name="empresa" id="empresa" readonly="readonly"  value="<?php echo $row["empresas"]?>"/>
  62.  
  63. <body>
  64. </html>

Intente haciendo la consulta asi pero no me funciono:

Código PHP:
Ver original
  1. // consulta
  2. query="select e.NUM_CED_EGR, e.NOM_EGR, e.APE_EGR,  GROUP_CONCAT(em.RAZ_SOC_EMP separator " - ") as empresas, from egresado e, empresa em, empresas_trabajo_egresado ete  where  ete.NIT_EMP=em.NIT_EMP and e.NUM_CED_EGR=ete.NUM_CED_EGR    and  e.NUM_CED_EGR='$cedula' GROUP BY (ete.'$cedula')";

Como puedo solucionar este problema, la funcion group_concat si sirve en php?

Agradezco me puedan colaborar

Etiquetas: ejecutar, sql
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:46.