uso este codigo q me genera un calendario el cual al dar click en los dias me devuelve la fecha en dia/mes/año a otra pagina, todo eso esta bien, salvo q yo quiero q me busque en una bd mysql, cada dia a mostrar, es decir q en la bd hay una tabla q se llama programacion(idprogramacion,fecha,programa) donde fecha usa el formato yyyy-mm-dd , por eso en este calendario deseo hacewr una consulta y si ese dia esta eb la bd me muestre el link sino no muestre nada, espero haberme explicado bien
Código PHP:
<?
include("conex.inc.php");
if ($calendario==1){
$mess =$_GET['mess'];
$anoss =$_GET['anoss'];
}else{
$mess= date(m);
$anoss= date(y);
}
echo CalendarioPHP($anoss,$mess, 2);
//echo CalendarioPHP($anoss, $mess, 2);
//para retroceder calendario
if ($mess==1){//
$anosant = $anoss - 1;
$mesant= 12;
}else{
$anosant = $anoss;
$mesant= $mess - 1;
}
// para avanzar calendario
if ($mess==12){//
$anosig = $anoss + 1;
$messig= 1;
}else{
$anosig= $anoss;
$messig=$mess + 1;
}
switch ($mess) {
case "01" :$mesactual= "Enero";break;
case "02" :$mesactual= "Febrero";break;
case "03" : $mesactual="Marzo";break;
case "04" : $mesactual="Abril";break;
case "05" : $mesactual="Mayo";break;
case "06" : $mesactual="Junio";break;
case "07" :$mesactual="Julio";break;
case "08" :$mesactual= "Agosto";break;
case "09" :$mesactual="Septiembre";break;
case "10" : $mesactual="Octubre";break;
case "11" : $mesactual="Noviembre";break;
case "12" :$mesactual="Diciembre";break;
};
$anio_actual=date("Y",time());
$anio_actual=$anio_actual + $anoss;
$fechaactual =$mesactual;
?>
<?
function CalendarioPHP($year, $month, $day_heading_length = 3){
// Parametros de aspecto del calendario
$nombreFichero = basename($_SERVER['PHP_SELF']);
$ColorFondoCelda = '';
$ColorFondoTabla = '';
$ColorFechaDom='#990000';
$ColorFechaSem='#006699';
$AltoFechaSem='20';
$ColorFondoCeldasDiaSemana = '';
$ColorFondoCeldasFestivo = '';
$ColorFondoCeldaDiaActual = '';
$ColorDiaLaboral = '#000000';
$ColorDiaFestivo = '#000000';
$ColorDiaActual = '#000000';
$ColorDiaSem = '#ffffff';
$TamanioFuente = '1';
$TamanioFuenteFecha = '2';
$TipoFuente = 'Arial, Helvetica, sans-serif';
$TipoFuenteFecha = 'Verdana, Arial, Helvetica, sans-serif';
$AnchoCalendario = '451';
$AltoCalendario = '350';
$AnchoCeldas = '55';
$AltoCeldas = '55';
$AlineacionHorizontalTexto = 'top';
$AlineacionVerticalTexto = 'left';
$programa='CAMINO A LA FAMA';
//Calculo la fecha actual
$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');
static $day_headings = array('Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado');
$maxdays = date('t', $first_of_month); #number of days in the month
$date_info = getdate($first_of_month); #get info about the first day of the month
$month = $date_info['mon'];
$year = $date_info['year'];
switch ($date_info['mon']) {
case "01" : $date_info['month']="Enero";break;
case "02" : $date_info['month']="Febrero";break;
case "03" : $date_info['month']="Marzo";break;
case "04" : $date_info['month']="Abril";break;
case "05" : $date_info['month']="Mayo";break;
case "06" : $date_info['month']="Junio";break;
case "07" : $date_info['month']="Julio";break;
case "08" : $date_info['month']="Agosto";break;
case "09" : $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;
};
//Comienzo la tabla que contiene el calendario
$calendar = ("<table ").
("border='1' bordercolor='#FFFFFF' ").
("height='".$AltoCalendario."' ").
("width='".$AnchoCalendario."' ").
("cellspacing='1' cellpadding='2' ").
("bgcolor='".$ColorFondoTabla."'>\n");
//Cabecera de la tabla calendario
//Use the <caption> tag or just a normal table heading. Take your pick.
//$calendar .= "<caption class=\\"month\\">$date_info[month], $year</caption>\n";
$calendar .= ("<tr>\n").
("<th height='".$AltoCeldas."' colspan='7'>").
//("<font color='".$ColorDiaFestivo."' size=".$TamanioFuenteFecha." face='".$TipoFuenteFecha."'>").
("<table width='451' border='0' cellpadding='0' cellspacing='0'> <tr> <td width='267' height='19' bgcolor='#0097CF'> <span class='verdana'> <span class='style1'>".$programa."</span></span></td> <td width='28' background='../imagenes/img-internas/fondo-bar-red.gif'></td><td width='129' bgcolor='#D2114E' align='center'>").
("<font color='".$ColorDiaSem."' size=".$TamanioFuenteFecha." face='".$TipoFuenteFecha."'>").
("$date_info[month], $year").
("</font>").
("</td><td width='27' background='../imagenes/img-internas/fondo-bar-red.gif'></td> </tr></table>").
("</th>\n</tr>\n");
// Imprime los dias de la semana "Lun", "Mar", etc.
// Si day_heading_length es 4, aparecerá el nombre entero del dia
// si no, solo imprime los n primeros caracteres
if($day_heading_length > 0 and $day_heading_length <= 4){
$calendar .= "<tr>\n";
foreach($day_headings as $day_heading){
$calendar .= ("<th height='".$AltoFechaSem."' abbr='".$day_heading."' class='dayofweek' bgcolor='".$ColorFechaSem."'>").
("<font color='".$ColorDiaSem."' size='".$TamanioFuente."' face='".$TipoFuenteFecha."'>").
//($day_heading_length != 4 ? substr($day_heading, 0, $day_heading_length) : $day_heading).
($day_heading_length == 4 ? substr($day_heading, 0, $day_heading_length) : $day_heading).
("</font>").
("</th>\n");
}
$calendar .= "</tr>\n";
}
$calendar .= "<tr>\n";
$weekday = $date_info['wday']; //Para que sea el Domingo el primer dia de la semana
//$weekday = $date_info['wday']-1; #weekday (zero based) of the first day of the month
if ($weekday==-1) $weekday=6; //Por si el Domingo es el dia 1 del mes
$day = 1; #starting day of the month
// Cuidadin con los primeros dias "vacios" del mes
if($weekday > 0){
$calendar .= ("<td bgcolor='".$ColorFondoTabla).
("' colspan='".$weekday."'></td>\n");
}
//Imprimimos los dias del mes
while ($day <= $maxdays){
if($weekday == 7){ //Empieza una nueva semana
$calendar .= "</tr>\n<tr>\n";
$weekday = 0;
}
//Miro si el dia que voy a pintar es festivo
$esFestivo = 0;
$tmp_date=$day."/".$month;
for ($i=0;$i<14;$i++) {
if ($tmp_date==$DiasFestivos[$i]) {$esFestivo=1;break;}
}
$calendar .= ("<td width='".$AnchoCeldas).
("' height='".$AltoCeldas).
("' align='".$AlineacionHorizontalTexto).
("' valign='".$AlineacionVerticalTexto).
("' ");
// Coloreo el fondo dependiendo del dia en el que nos encontremos
$calendar .= "bgcolor='";
if (($day==$dia_actual) and
($month==$mes_actual) and
($year==$anio_actual)) { //Si el dia es el de hoy
$calendar .= $ColorFondoCeldaDiaActual;
} else { // Si el dia no es el de hoy
if (($weekday == 5) or ($weekday == 6) or ($esFestivo==1)) { // Si estoy en fin de semana weekday=5,6
$calendar .= $ColorFondoCeldasFestivo;
} else {
$calendar .= $ColorFondoCelda;
};
};
// Aqui es donde le pongo lo que tiene que hacer en caso de exista enlace
//$link = (basename($_SERVER["PHP_SELF"]))."?fecha=".$month."/".$day."/".$year;
$link = player."?fecha=".$day."/".$month."/".$year."&prog=".$programa;
$calendar .= "'><font color='";
$calendar .= $ColorDiaActual;
$calendar .= ("' ").
("size='".$TamanioFuente."' ").
("face='".$TipoFuente."'><strong>".$day).
("<br></strong></font>");
$fechaVal=$year."-".$month."-".$day;
//$fechaVal = mktime(0,0,0,$month,$day,$year);
echo $fechaVal;
echo "<br>";
echo $rsfechacon=mysql_query("select * from programacion where fecha='$fechaVal'");
$row = mysql_fetch_array($rsfechacon);
$fechabd=mysql_result($rsfechacon,0,"fecha");
echo $fechabd."<br>";
/*$anioVal= substr($fecha,0,4);
$mesVal=substr($fecha,5,2);
$diaVal=substr($fecha,8,2);
echo "Dia:".$diaVal;
echo "Mes:".$mesVal;
echo "Año:".$anioVal;*/
if ($rsfechacon==1){//existencia de programa
$calendar .= " <a href='".$link."'><img src='../imagenes/calendar-images/loguito-0.png' width='37' height='35' border='0'></a>";
}else{
$calendar .= " <img src='../imagenes/calendar-images/loguito-gris.png' width='37' height='35' border='0'>"; ;
}
("</td>\n");
$day++;
$weekday++;
}
//Cuidadin con los ultimos dias vacios del mes
if($weekday != 7){
$calendar .= '<td bgcolor="'.$ColorFondoTabla.'" colspan="' . (7 - $weekday) . '"></td>';
}
//Chinnnnn pon, devolvemos toda la cadena calendario
return $calendar . "</tr>\n</table>\n";
} // Fin de la funcion CalendarioPHP(año, mes, caracteres del dia)
?>