Foros del Web » Programando para Internet » PHP »

No se muestran los resulatdos de la consulta en el navegador

Estas en el tema de No se muestran los resulatdos de la consulta en el navegador en el foro de PHP en Foros del Web. Hola a todos, muchos saludos. Tengo el siguiente código php: Código PHP: <?php /*$buscar = trim($buscar); if (!$buscar)    {       echo "Error: Usted no ha introducido ningún criterio de búsqueda.";       exit();    }  */   $link  = @  mysql_pconnect ( "localhost" ...
  #1 (permalink)  
Antiguo 22/05/2008, 09:58
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 8 meses
Puntos: 0
Pregunta No se muestran los resulatdos de la consulta en el navegador

Hola a todos, muchos saludos.
Tengo el siguiente código php:
Código PHP:
<?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 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 \"Esto 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"
);
          
$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="1" cellpadding="2"
cellspacing="2" align="center" bordercolor="#660099" bgcolor="#CCFFFF">
<tr>
<th><font color="#000099">Nombre Grupo</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>Total :$registros</td>
</tr>
EOD;

$pie "</table>";
$cumplimiento =<<<CUMPLIMIENTO
       $encabezamiento
       $detalles
       $pie
CUMPLIMIENTO;
echo 
"Hay $registros registros en la base de datos.";
echo 
$cumplimiento;
?>
Se preguntaran el por qué de case. El problema es que deseo que el nombre del mes de ese campo tipo fecha me salga en Español y no en Ingles como hace mysql.
El problema es que cuando llamo la página en el browser me sale el mensaje que esta en el if (!$resultado). Es decir: Los elementos de la tabla no están disponibles en estos momentos.
Esta consulta cuando la ejecuto en mysql funciona perfectamente bien si ningún tipo de problemas. No se por qué en php no me funciona. No se si es un problema de sintáxis. Si alguién me pudiera esclarecer el problema del escapado de las comillas dobles con el \ se lo agradecería enormemente, pues por mas que leo sobre este aspecto no me acaba de quedar claro aún.
Muchas gracias por su ayuda. Espero no habérlos agobiado con tanta berborrea.
  #2 (permalink)  
Antiguo 22/05/2008, 10:14
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: No se muestran los resulatdos de la consulta en el navegador

Que tal efelix, verifica que tu consulta no tenga errores.

Código PHP:
<?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 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 \"Esto 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"
;
          
$resultado =  mysql_query($query$link) or die("Error en query $query:" .mysql_error() );
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="1" cellpadding="2"
cellspacing="2" align="center" bordercolor="#660099" bgcolor="#CCFFFF">
<tr>
<th><font color="#000099">Nombre Grupo</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>Total :$registros</td>
</tr>
EOD;

$pie "</table>";
$cumplimiento =<<<CUMPLIMIENTO
       $encabezamiento
       $detalles
       $pie
CUMPLIMIENTO;
echo 
"Hay $registros registros en la base de datos.";
echo 
$cumplimiento;
?>
Saludos.
  #3 (permalink)  
Antiguo 22/05/2008, 10:55
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: No se muestran los resulatdos de la consulta en el navegador

Muchas gracias por tu respuesta. La consulta la he mirado varias veces, incluso te digo mas, como en mysql funciona lo que hecho es copiar y pegar y realizar las modificaciones pertinentes relacionadas con el código php. Ahora explícame por qué eliminaste los () inicial y final.
Después de haber hecho los cambios me sale el siguiente error en el browser:

Error en query SELECT grupos.nombregrupo, trabajadores.nombreworker, servicio.nombreserv, CASE 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 "Esto 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:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'THEN "Enero" WHEN MONTH(tabla_union.FechaProduccion) = 2 THEN "Febrero" WHEN' at line 3

Esto me tiene ya desesperado. Gracias por tu atención y tu paciencia.
  #4 (permalink)  
Antiguo 22/05/2008, 12:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: No se muestran los resulatdos de la consulta en el navegador

Hola efelix,

Revisa el manual de MySQL (http://docs.mysql.com/), para que veas la sintaxis del CASE en SQL.

Saludos.
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 16:57.