Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/11/2010, 12:07
Death_Empire
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 16 años, 8 meses
Puntos: 55
Respuesta: poner fechas BD al calendario

Cita:
Iniciado por mysterio069 Ver Mensaje
esque yo lo que quiero es sacar los datos de la BD y que me los adapte al script, por eso lo puse en PHP, alquien me puede ayudar??
en php tengo el que posteaste primero lo modifique para que saque los dias desde una bd.

tienes que modificar las consultas para que te funcione y modifica la parte final para mostrar lo que quieres de acuerdo a la fecha
Código PHP:
<?php
//$db necesario para pasarselo a la funcion
$db = mysql_connect("localhost","root","") or die("Error Conexion");
mysql_select_db("nombre_bd") or die("error de seleccion");

function 
IntDiv ($num, $dvsr)
{
    
$negate = 0;
    
$result = 0;

    if (
$dvsr == 0)
    return 
null;
    else {
        if (
$num * $dvsr < 0 )
            
$negate = 1;
        if (
$num < 0)
            
$num = -$num;
        if (
$dvsr < 0)
            
$dvsr = -$dvsr;
        
$result = (($num - ($num &#37; $dvsr)) / $dvsr);
        
if ($negate)
            return -
$result;
        else
            return 
$result;
    }
}

function 
GetMonth($m)
{
    switch(
$m){
        case 
3:
        return (
"Marzo");
        break;
        case 
4:
        return (
"Abril");
        break;
        case 
5:
        return (
"Mayo");
        break;
    }
}

function 
GetOrdinal($d)
{
    
$rmdr = $d % 10;
    if (((
$d >= 4) and ($d <= 20)) or ($rmdr == 0) or ($rmdr > 3))
        return (
$d + "th");
    else {
        switch(
$rmdr){
            case 
1:
            return (
$d + "st");
            break;
            case 
2:
            return (
$d + "nd");
            break;
            case 
3:
            return (
$d + "rd");
            break;
        }
    }
}


function 
CalendarioPHP($year, $month, $day_heading_length = 3,$db){
$nombreFichero = basename($_SERVER['PHP_SELF']);
$ColorFondoCelda = '#CCCCCC';
$ColorFondoTabla = '#666666';
$ColorFondoCeldasDiaSemana = '#fff4bf';
$ColorFondoCeldasFestivo = '#ee0000';
$ColorFondoCeldasFinDeSemana = '#110000';
$ColorFondoCeldaDiaActual = '#00ff00';
$ColorDiaLaboral = '#444444';
$ColorDiaFestivo = '#ffffff';
$ColorDiaFinDeSemana = '#ffff00';
$ColorDiaActual = '#0000ff';
$TamanioFuente = '1';
$TipoFuente = 'Arial, Helvetica, sans-serif';
$AnchoCalendario = '1%';
$AltoCalendario = '1%';
$AnchoCeldas = '1%';
$AltoCeldas = '1%';
$AlineacionHorizontalTexto = 'center';
$AlineacionVerticalTexto = 'center';

$dia_actual=date("j",time());
$mes_actual=date("n",time());
$anio_actual=date("Y",time());

$first_of_month = mktime (0,0,0, $month, 1, $year);

static 
$day_headings = array('Lunes','Martes','Miercoles','Jueves','Viernes','Sabado','Domingo');
$maxdays = date('t', $first_of_month);
$date_info = getdate($first_of_month);
$month = $date_info['mon'];
$year = $date_info['year']; //va cambiando el año
// $year = date("Y");//siemrpe año actual


// ----------- INICIO Dias Festivos ----------

//se selecciona de la BD los festivos horario_extra=1
$SQL_2 = 'SELECT fecha FROM fechas WHERE horario_extra=1 AND YEAR(fecha)="'. $year .'"';
$RES_2 = mysql_query($SQL_2);

while(
$row = mysql_fetch_row($RES_2)){
    
$DiasFestivos[] = date("j/n",strtotime($row[0]));    
}



switch (
$date_info['mon']) {
    case 
1 : $date_info['month']="Enero";break;
    case 
2 : $date_info['month']="Febrero";break;
    case 
3 : $date_info['month']="Marzo";break;
    case 
4 : $date_info['month']="Abril";break;
    case 
5 : $date_info['month']="Mayo";break;
    case 
6 : $date_info['month']="Junio";break;
    case 
7 : $date_info['month']="Julio";break;
    case 
8 : $date_info['month']="Agosto";break;
    case 
9 : $date_info['month']="Septiembre";break;
    case 
10 : $date_info['month']="Octubre";break;
    case 
11 : $date_info['month']="Noviembre";break;
    case 
12 : $date_info['month']="Diciembre";break;
};

$calendar = ("<table ").
(
"border='0' ").
(
"height='".$AltoCalendario."' ").
(
"width='".$AnchoCalendario."' ").
(
"cellspacing='1' cellpadding='2' ").
(
"bgcolor='".$ColorFondoTabla."'> ");

$calendar .= "<td align='center' valign='center' colspan='7'>";
$calendar .= "<form method='POST' action='". $_SERVER['PHP_SELF'] ."' name='calendario' target='_self'>";
$calendar .= "<p><center><input type='submit' value='< Mes' name='mesmenos'><input type='submit' value='Mes >' name='mesmas'></center></p>";
$calendar .= "<input type='hidden' name='anoactual' value='$year'><input type='hidden' name='mesactual' value='$month'>";
$calendar .= "</form>";
$calendar .= "</td>";
$calendar .= "</tr> ";

$calendar .= ("<tr> ").
(
"<th height='".$AltoCeldas."' colspan='7'>").
(
"<font color='".$ColorDiaFestivo."' size=".$TamanioFuente." face='".$TipoFuente."'>").
(
"$date_info[month], $year").
(
"</font>").
(
"</th> </tr> ");



if(
$day_heading_length > 0 and $day_heading_length <= 4){
$calendar .= "<tr> ";
foreach(
$day_headings as $day_heading){
$calendar .= ("<th height='".$AltoCeldas."' abbr='".$day_heading."' class='dayofweek' bgcolor='".$ColorFondoCeldasDiaSemana."'>").
(
"<font color='".$ColorDiaLaboral."' size='".$TamanioFuente."' face='".$TipoFuente."'>").
(
$day_heading_length != 4 ? substr($day_heading, 0, $day_heading_length) : $day_heading).
(
"</font>").
(
"</th> ");
}
$calendar .= "</tr> ";
}
$calendar .= "<tr> ";

$weekday = $date_info['wday']-1; //Para el primer dia de la semana

//$weekday = $date_info['wday']-1;
if ($weekday==-1) $weekday=6;
$day = 1; #starting day of the month

if($weekday > 0){
$calendar .= ("<td bgcolor='".$ColorFondoTabla).
(
"' colspan='".$weekday."'></td> ");
}

while (
$day <= $maxdays){
if(
$weekday == 7){
$calendar .= "</tr> <tr> ";
$weekday = 0;
}

$esFestivo = 0;
$tmp_date=$day."/".$month;
for (
$i=0;$i<count($DiasFestivos);$i++) {
if (
$tmp_date==$DiasFestivos[$i]) {$esFestivo=1;break;}
}

$calendar .= ("<td width='".$AnchoCeldas).
(
"' height='".$AltoCeldas).
(
"' align='".$AlineacionHorizontalTexto).
(
"' valign='".$AlineacionVerticalTexto).
(
"' ");

$calendar .= "bgcolor='";
if ((
$day==$dia_actual) and ($month==$mes_actual) and ($year==$anio_actual)) {
$calendar .= $ColorFondoCeldaDiaActual;
} else {
if ((
$esFestivo==1)) {
$calendar .= $ColorFondoCeldasFestivo;
} else {
if ((
$weekday == 0) or ($weekday == 6)) {
//$calendar .= $ColorFondoCeldasFinDeSemana;
$calendar .= $ColorFondoCelda;
} else {
$calendar .= $ColorFondoCelda;
}
};
};
$fechalink = date("Y-m-d",mktime (0,0,0, $month, $day, $year));
$link = (basename($_SERVER["PHP_SELF"]))."?anoactual=$year&mesactual=$month&fecha=".$fechalink;
$calendar .= "'><a href='".$link."'><font color='";

if ((
$day==$dia_actual) and ($month==$mes_actual) and ($year==$anio_actual)) {
$calendar .= $ColorDiaActual;
} else {
if (
$esFestivo==1){
$calendar .= $ColorDiaFestivo;
} else {
if ((
$weekday == 0) or ($weekday == 6)) {
//$calendar .= $ColorDiaFinDeSemana;
$calendar .= $ColorDiaLaboral;
}else{
$calendar .= $ColorDiaLaboral;
}
};
};
$calendar .= ("' ").
(
"size='".$TamanioFuente."' ").
(
"face='".$TipoFuente."'><strong>".$day).
(
"</strong></font></a>").
(
"</td> ");
$day++;
$weekday++;
}

if(
$weekday != 7){
$calendar .= '<td bgcolor="'.$ColorFondoTabla.'" colspan="' . (7 - $weekday) . '"></td>';
}
$calendar .= "</tr> ";
$calendar .= "<tr>";

$calendar .= "</table> ";
return 
$calendar;
}

extract($_POST);
extract($_GET);

if (!isset(
$mesactual) OR $mesactual == ''){
    
$mesactual=date("n",time());
}
if (!isset(
$anoactual) OR $anoactual==''){
    
$anoactual=date("Y",time());
}
$dia_actual=date("d",time());

$mes_actual = date("n",mktime (0,0,0, $mesactual, $dia_actual, $anoactual));
$anio_actual = date("Y",mktime (0,0,0, $mesactual, $dia_actual, $anoactual));

if (isset(
$mesmenos) AND $mesmenos != ''){
$mes_actual = date("n",mktime (0,0,0, $mesactual-1, $dia_actual, $anoactual));
$anio_actual = date("Y",mktime (0,0,0, $mesactual-1, $dia_actual, $anoactual));
}
if (isset(
$mesmas) AND $mesmas !=''){
$mes_actual = date("n",mktime (0,0,0, $mesactual+1, $dia_actual, $anoactual));
$anio_actual = date("Y",mktime (0,0,0, $mesactual+1, $dia_actual, $anoactual));
}
if (isset(
$anomenos) AND $anomenos !=''){
$mes_actual = date("n",mktime (0,0,0, $mesactual, $dia_actual, $anoactual));
$anio_actual = date("Y",mktime (0,0,0, $mesactual, $dia_actual, $anoactual));
}
if (isset(
$anomas) AND $anomas !=''){
$mes_actual = date("n",mktime (0,0,0, $mesactual, $dia_actual, $anoactual));
$anio_actual = date("Y",mktime (0,0,0, $mesactual, $dia_actual, $anoactual));
}

echo 
CalendarioPHP($anio_actual, $mes_actual, 4, $db);
echo 
'<br>&nbsp;<br>&nbsp;<br>';


//Aca haces la consulta a la BD para el detalle del dia en caso de tenerlo
//En este caso lo que hace es dar la opcion de modificar el tipo de dia, festivo o habil
if(isset($_GET['anoactual']) AND isset($_GET['mesactual']) AND isset($_GET['fecha'])){
    
    
$SQL = "SELECT * FROM fechas WHERE fecha = '". $_GET['fecha'] ."'";
    
$RES = mysql_query($SQL);
    
$calendario = mysql_fetch_assoc($RES);
    
    echo 
'<form name="f_cal" method="POST" action="'. $_SERVER['PHP_SELF'] .'">';
    
    echo 
'<center>Fecha: ' . $calendario['fecha'];
    echo 
'<select name="cambiar_festivo">';
    
    if(
$calendario['horario_extra'] == 1){
        echo 
'<option value="1" selected>Dia Festivo</option>';
        echo 
'<option value="0">Dia Hábil</option>';
    }
    else{
        echo 
'<option value="0" selected>Dia Hábil</option>';
        echo 
'<option value="1">Dia Festivo</option>';
    }
    echo 
'</select>&nbsp;<input type="hidden" name="fecha_cambiar" value="'. $calendario['fecha'] .'">
                        <input type="submit" name="enviar" value="Cambiar"></center>
        </form><br>&nbsp;<br>&nbsp;<br>'
;
    

}
?>