Ver Mensaje Individual
  #12 (permalink)  
Antiguo 25/11/2011, 14:31
Avatar de Perr0
Perr0
 
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años
Puntos: 79
Respuesta: Crear calendario en Sistema de Asistencia

hay varias formas de adaptarlo, puedes consultar tu base

"SELECT fecha FROM tabla WHERE fecha='2011-11-22'"
"SELECT fecha FROM tabla WHERE fecha='2011-11-23'"
"SELECT fecha FROM tabla WHERE fecha='2011-11-24'"


y asi hasta que llegues al ultimo dia. cada vez que la consultes y te arroje un resultado que existe:

$asistencia[]=1;

caso contrario

$asistencia[]=0;

al terminar tendras tu array

-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------


otra forma es quitar $asistencia de la clase y realizar la consulta a la base en la clase

algo asi
"SELECT fecha FROM tabla WHERE fecha='$a-$m-$d'"

te lo dejo, trata de adaptarlo porque nose los nombres de tu tabla y campos

Código PHP:
Ver original
  1. <?
  2. //Inicio Funciones
  3. function fechaNumero($f,$opc){
  4.     $f = preg_replace("#[,.\/ ]#","-",$f);
  5.     if(!$opc){
  6.         list($d,$m,$a) = explode("-",$f);
  7.         $fecha = mktime(0,0,0,$m,$d,$a)/(60 * 60 * 24);
  8.     }else
  9.     $fecha = explode("-",$f);
  10.     return $fecha;
  11. }
  12.  
  13. function diasemana($d) {
  14.     $sem = array("Do","Lu","Ma","Mi","Ju","Vi","Sa");
  15.     return $sem[$d];
  16. }
  17. //Término Funciones
  18.  
  19.  
  20. //Inicio Clase
  21. class claseTablaDias {
  22.     function validarDatos($fecha_inicio,$fecha_fin){
  23.         $f1 = fechaNumero($fecha_inicio,0);
  24.         $f2 = fechaNumero($fecha_fin,0);
  25.         $this->fi = $fecha_inicio;
  26.         $this->dif_dias = $f2 - $f1 + 1;
  27.         if($this->dif_dias>0) {
  28.             $this->crearTablaDias();
  29.         }else{
  30.             print "error datos";
  31.         }
  32.     }
  33.    
  34.     function crearTablaDias(){
  35.         print "<table border=\"1\" cellpadding=\"2\" cellspacing=\"2\">\n";
  36.         for($row=0;$row<3;$row++){
  37.             list($d,$m,$a) = fechaNumero($this->fi,1);
  38.             print "<tr>\n";
  39.             for($i==0 ; $i<$this->dif_dias ;$i++){
  40.                 print "<td align=\"center\">";
  41.                 $dia = diasemana(date("w",mktime(0,0,0,$m,$d,$a)));
  42.                 $fechadia = date("j",mktime(0,0,0,$m,$d,$a));
  43.                 if($row==0)
  44.                 print $dia;
  45.                 elseif($row==1)
  46.                 print $fechadia;
  47.                 elseif($row==2){
  48.                     ##################### CONECTAR BASE DATOS #####################
  49.                     $consulta = "SELECT fecha FROM tabla WHERE fecha='$a-$m-$d'";
  50.                     $query = mysql_query($consulta);
  51.                     if(mysql_num_rows($query))
  52.                     $valor=1;
  53.                     else
  54.                     $valor=0;
  55.                     ##################### DESCONECTAR BASE DATOS #####################
  56.                     if($valor==1 && $dia!="Do")
  57.                     print "x";
  58.                     else
  59.                     print "&nbsp;";
  60.                 }
  61.                 $d++;
  62.                 print "</td>";
  63.             }
  64.             print "</tr>\n";
  65.             $i=0;
  66.         }
  67.         print "</table>";
  68.     }
  69. }
  70. //Término Clase
  71.  
  72.  
  73.  
  74. //se crea el constructor
  75. $const = new claseTablaDias;
  76. //se ingresan los datos, fecha de incio, fecha de termino, array de asistencia
  77. $const->validarDatos("20-8-2011","4-9-2011");
  78. ?>

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip