Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/05/2008, 08:06
efelix
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 8 meses
Puntos: 0
Pregunta Varios criterios para una consulta

Saludos a todos.
Disculpen los moderadores si este tema aparece repetido. Cuando lo poubliqué incialmente la conexión falló y no tengo la certeza de si quedó posteado o no.
De todas formas entré nuevamente al foro y no lo he visto, así que parece que no.
El problema es el siguiente:
Código PHP:
<style type="text/css">
<!--
body {
    background-image: url(../images/fonditoeima.jpg);
    background-repeat: repeat;
}
-->
</style>
<?php
$buscar 
trim($buscar);
if (!
$buscar)
   {
      echo 
"Error: Usted no ha introducido ningún criterio de búsqueda.";
      exit();
   }
  
$link = @ mysql_pconnect("localhost""efelix""mychildren");
if (!
$link)
   {
     echo 
"Error: No es posible conectarse a la base de datos en estos momentos.
           Por favor inténtelo más tarde."
;
    exit();       
   }
$db = @ mysql_select_db("plan_si");
if (!
$db)
   {
     echo 
"Error: No se encuentra disponible la tabla a la que intenta conectarse.
           Por favor inténtelo más tarde"
;
    exit();       
   }
$query "SELECT grupos.nombregrupo, trabajadores.nombreworker, servicio.nombreserv,
CASE WHEN MONTH (tabla_union.FechaProduccion) = 1 THEN \"Enero\"
WHEN MONTH (tabla_union.FechaProduccion) = 2 THEN \"Febrero\"
WHEN MONTH (tabla_union.FechaProduccion) = 3 THEN \"Marzo\"
WHEN MONTH (tabla_union.FechaProduccion) = 4 THEN \"Abril\"
WHEN MONTH (tabla_union.FechaProduccion) = 5 THEN \"Mayo\"
WHEN MONTH (tabla_union.FechaProduccion) = 6 THEN \"Junio\"
WHEN MONTH (tabla_union.FechaProduccion) = 7 THEN \"Julio\"
WHEN MONTH (tabla_union.FechaProduccion) = 8 THEN \"Agosto\"
WHEN MONTH (tabla_union.FechaProduccion) = 9 THEN \"Septiembre\"
WHEN MONTH (tabla_union.FechaProduccion) = 10 THEN \"Octubre\"
WHEN MONTH (tabla_union.FechaProduccion) = 11 THEN \"Noviembre\"
WHEN MONTH (tabla_union.FechaProduccion) = 12 THEN \"Diciembre\"
ELSE \"Este no es un mes\" END AS Mes, tabla_union.PLAN, tabla_union.PROD
FROM (grupos INNER JOIN trabajadores ON grupos.IDGRUPO=trabajadores.IDGRUPO) INNER JOIN (servicio INNER JOIN tabla_union ON servicio.IDSERVICIO=tabla_union.IDSERVICIO) ON trabajadores.IDWORKERS=tabla_union.IDWORKERS WHERE trabajadores.nombreworker LIKE '%$buscar%'"
;

$resultado =  @ mysql_query("$query");
if (!
$resultado)
  {
    echo 
"Error: Los elementos de la tabla no están disponibles en estos momentos.
          Por favor inténtelo más tarde"
;
   exit();          
  }
 
$registros = @ mysql_num_rows($resultado);
if (
$registros 0)
  {
    echo 
"Lo sentimos, no se ha encontrado ninguna coincidencia con '$buscar' en nuestra Web.";
  }
             
$encabezamiento=<<<EOD
<h2><center>Cumplimiento del Plan</center></h2>
<table width="70%" border="2" cellpadding="2"
cellspacing="2" align="center" bordercolor="#660099" bgcolor="#CCFFFF">
<tr>
<th><font color="#000099">Código</font></th>
<th><font color="#000099">Trabajador</font></th>
<th><font color="#000099">Servicio</font></th>
<th><font color="#000099">Mes</font></th>
<th><font color="#000099">Plan</font></th>
<th><font color="#000099">Real</font></th>
</tr>
EOD;
// echo $cumplimiento;

$detalles '';
while (
$row mysql_fetch_array($resultado)) {
   
$nombre_grupo $row ['nombregrupo'];   
   
$nombre_trabajador $row ['nombreworker'];   
   
$servicio $row ['nombreserv'];
   
$mes $row ['Mes'];  
   
$plan $row ['PLAN'];
   
$real $row ['PROD'];   
   
$detalles .=<<<EOD
 <tr>
  <td align = "center"><strong><font color="#990000">$nombre_grupo</font></strong></td>  
  <td align = "center"><strong><font color="#990000">$nombre_trabajador</font></strong></td>
  <td align = "center"><strong><font color="#990000">$servicio</font></strong></td>
  <td align = "center"><strong><font color="#990000">$mes</font></strong></td>
  <td align = "center"><strong><font color="#990000">$plan</font></strong></td>
  <td align = "center"><strong><font color="#990000">$real</font></strong></td>  
</tr>
EOD;
}

$detalles .=<<<EOD
  <tr>
  <td>&nbsp;</td>
  </tr>
  <tr>
  <td><strong>Total :$registros</strong></td>
</tr>
EOD;

$pie "</table>";
$cumplimiento =<<<CUMPLIMIENTO
       $encabezamiento
       $detalles
       $pie
CUMPLIMIENTO;
echo 
"<b>";
echo 
"<font color=\"#990000\">";
echo 
"Hay $registros registros en la base de datos.";
echo 
"</font>";
echo 
"</b>";
echo 
$cumplimiento;
?>
En query que aparece embebida en este código php obtengo los datos para el trabajador que paso a través del siguiente formulario:
Código HTML:
<style>
#buscador {border: 1px solid #CCCCCC;}
body {
	background-image: url(../images/fonditoeima.jpg);
	background-repeat: repeat;
}
</style>
<div id="buscador" align="center">
<form method="get"  action="table2.php" name="bus">
<br />
<img src="../images/buscar.jpg" width="45" height="45" border="0">Buscar
<br />
<input type="text" name="buscar" size="20"><br />
<input type="submit"  value="           Buscar          ">
</form>
</div> 
Es decir pongo el nombre del trabajador en el control correspondiente en el formulario y la página resultante que es la primera (la del código php) que aparece arriba se encarga de mostrar los resultados para este trabajador.
Es decir:
Nombre del Grupo, Nombre del Trabajador, Nombre del Servicio, Mes, Plan, Real.
Hasta ahora no hay ningún problema. Me pregunto como sería si yo deseara que en el formulario aparacieran diferentes opciones para ver los resultados, ya sea por nombre de grupo, por nombre de servicio, por mes; utilizando esta misma consulta.
Qué deberia hacer?. Aclaro que mi duda no está relacionada en como hacer el formulario, sino como, claro de ser posible empleando la misma consulta obtener diferentes resultados según lo que seleccione el usuario.
Muchas gracias. Espero hayan enetendido mi mensaje.