Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/11/2010, 12:07
Death_Empire
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 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 )
            
$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$month1$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 
$date_info['month']="Enero";break;
    case 
$date_info['month']="Febrero";break;
    case 
$date_info['month']="Marzo";break;
    case 
$date_info['month']="Abril";break;
    case 
$date_info['month']="Mayo";break;
    case 
$date_info['month']="Junio";break;
    case 
$date_info['month']="Julio";break;
    case 
$date_info['month']="Agosto";break;
    case 
$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 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 != substr($day_heading0$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="' . ($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_actual4$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>'
;
    

}
?>