Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/10/2011, 11:59
Avatar de stuart_david3
stuart_david3
 
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 12 años, 8 meses
Puntos: 1
Mandar mensaje a una tabla en mysql y php con registro repetido!!!

Hola a todos!!! Pues verán, tengo un problema con una tabla que se genera en un pdf, en base a mysql y php, en ella tengo en las dos ultimas columnas dos datos: la hora de entrada y la hora de salida de un empleado, pero hay ocasiones en que un empleado solo tiene registrada una hora, y bueno en mi tabla imprimo la misma hora en la "hora de entrada" y la "hora de salida". Cómo podría hacer, para que cuando solo se registre una hora esta la ponga en la hora de entrada y en el campo de hora de salida me ponga un mensaje como por ejemplo: "Sin salida"... Esta es el código

Código PHP:
Ver original
  1. <?php
  2. error_reporting(E_ALL & ~E_NOTICE);
  3. function js2PhpTime($jsdate){
  4. if(preg_match('@(\d+)/(\d+)/(\d+)\s+(\d+):(\d+)@', $jsdate, $matches)==1)
  5. {
  6. $ret = mktime($matches[4], $matches[5], 0, $matches[1], $matches[2], $matches[3]);
  7. }
  8. else if(preg_match('@(\d+)/(\d+)/(\d+)@', $jsdate, $matches)==1){
  9.     $ret = mktime(0, 0, 0, $matches[1], $matches[2], $matches[3]);
  10.   }
  11.   return $ret;
  12. }
  13.         $fechaIni=$_POST['fechaIni'];
  14.         $fechaFin=$_POST['fechaFin'];
  15.  
  16.         $conectar=mysql_connect('localhost','root','');
  17.         if($conectar==NULL)
  18.         {
  19.             printf("Error al conectar a la Base de datos");
  20.         }
  21.  
  22. require_once('class.ezpdf.php');
  23. $pdf = new Cezpdf('LETTER','landscape');
  24. $pdf->selectFont('../fonts/Helvetica.afm');
  25. $pdf->ezSetCmMargins(1,1,1.5,1.5);
  26. $pdf->ezSetMargins(40,45,30,30);
  27. $fechs = date("d/m/y");
  28. $pdf->line(20,30,750,30);
  29. $pdf->line(20,585,750,585);
  30. $texto='Comisión Federal de Electricidad - Control de Asistencias';
  31. $tex = mb_convert_encoding($texto, 'ISO-8859-1', 'UTF-8');
  32. $pdf->addText(20,590,10,$tex);
  33. $texto2='Oficina de Informática - Subgerencia de Trabajo';
  34. $tex2 = mb_convert_encoding($texto2, 'ISO-8859-1', 'UTF-8');
  35. $pdf->addText(535,590,10,$tex2);
  36. $pdf->addText(20,18,10,$fechs);
  37. $pdf->ezStartPageNumbers(750,20,12,'','{PAGENUM} de {TOTALPAGENUM}',1);
  38. $Inicio=date("Y-m-d", js2PhpTime($fechaIni));
  39. $Final=date("Y-m-d", js2PhpTime($fechaFin));
  40. if (!empty($fechaIni) && !empty($fechaFin)) {
  41.         $resultado=mysql_query("SELECT RPEREGASIS, FECREGASIS, MIN(HORREGASIS) AS entrada, MAX(HORREGASIS) as salida
  42.        FROM registro WHERE RPEREGASIS LIKE 'TE%' AND FECREGASIS BETWEEN '$Inicio' AND '$Final' GROUP BY RPEREGASIS, FECREGASIS LIMIT 0,20");
  43.        
  44.         $ixx = 0;
  45. while($datatmp = mysql_fetch_assoc($resultado)) {
  46.     $ixx = $ixx+1;
  47.      $datatmp["entrada"]=substr($datatmp["entrada"],0,-2);
  48.      $datatmp["salida"]=substr($datatmp["salida"],0,-2);
  49.     $data[] = array_merge($datatmp, array('id'=>$ixx));
  50.        
  51.  
  52. }
  53.  
  54. $titles = array(
  55.                 'id'=>'<b>Id</b>',
  56.                 'RPEREGASIS'=>'<b>RPE del Empleado</b>',
  57.                 'FECREGASIS'=>'<b>Fecha</b>',
  58.                 'entrada'=>'<b>Hora de Entrada</b>',
  59.                 'salida'=>'<b>Hora de Salida</b>'
  60. );
  61. $options = array(
  62.                 'shadeCol'=>array(0.9,0.9,0.9),
  63.                 'xOrientation'=>'center',
  64.         'fontSize'=>8,
  65.                 'width'=>700,
  66.         'colGap'=>2,
  67.                 'xPos'=>'centre',
  68. );
  69. $txttit.="<b>Reporte:</b>\n";
  70. $txttit.= "Asistencia de Empleados \n";
  71. $pdf->ezText($txttit, 12);
  72. $pdf->ezText($data, 12);
  73. $pdf->ezTable($data, $titles, '', $options);
  74. $pdf->ezText("\n\n\n", 10);
  75. //$pdf->ezText("<b>Fecha:</b> ".date("d/m/Y"), 10);
  76. $pdf->ezStream();
  77. }
  78.  
  79. else{
  80. header("Location: PDFDefault.php");
  81. }
  82. ?>
  83. </body>
  84. </html>

Lo pienso de esta manera pero no funciona n_n...

Código PHP:
Ver original
  1. if($datatmp['entrada']==$datatmp['salida'])
  2.     $salida="Sin salida";
  3. else
  4.     $salida=$datatmp['salida'];

pero pues no se como especificarle que imprima $salida si es igual la hora o 'salida' si es diferente ...

Última edición por stuart_david3; 27/10/2011 a las 12:13