- Home
- Categorie
- Coding e Sistemistica
- PHP
- Calendario con date in evidenza
-
Calendario con date in evidenza
Ciao a tutti, volevo inserire nel mio sito un calendario dinamico con la particolarità che abbia delle celle di colori diversi a seconda che la data corrisponda alla data che ho inserito in una tabella sql.
Solo che non ci riesco e vedo che il problema è annidare due cicli diversi, la parte di codice che non mi convince è questa:[PHP]
while ($currentDay <= $numberDays) {
// Seventh column (Saturday) reached. Start a new row.
if ($dayOfWeek == 7) {
$dayOfWeek = 0; $calendar .= "</tr><tr>";
}
$currentDayRel = str_pad($currentDay, 2, "0", STR_PAD_LEFT);
$date = "$currentDayRel$month$year"; while($array=mysql_fetch_array($indice)){ $scadenza_file = $array[data]; $giorno_scadenza_file = substr($scadenza_file, 0, 2); $mese_scadenza_file = substr($scadenza_file, 2, 2); $anno_scadenza_file = substr($scadenza_file, 4, 4); if ( $currentDayRel == $giorno_scadenza_file && date("m") == $mese_scadenza_file) { $calendar .= "<td class='day_on' id='today_date' rel='$date' style='background:green'><a href='index.php?pagina=scadenzepergiorno&giorno=$currentDayRel&mese=$month&anno=$year'>$currentDay</td>"; } elseif($currentDayRel == $today_date && date("m") == $month){ $calendar .= "<td class='day_on' id='today_date' rel='$date' style='background:red'><a href='index.php?pagina=scadenzepergiorno&giorno=$currentDayRel&mese=$month&anno=$year'>$currentDay</td>"; } else { $calendar .= "<td class='day' rel='$date'><a href='index.php?pagina=scadenzepergiorno&giorno=$currentDayRel&mese=$month&anno=$year'>$currentDay</a></td>"; } } // Increment counters
$currentDay++; $dayOfWeek++;
} [/PHP]
Solamente che mi mostra tanti 1 quanti sono le righe della tabella sql selezionate.
-
Ho sistemato un attimo ma così ho un altro problema... il codice è questo
[PHP]
while ($currentDay <= $numberDays) {
// Seventh column (Saturday) reached. Start a new row.
if ($dayOfWeek == 7) {
$dayOfWeek = 0; $calendar .= "</tr><tr>";
}
$currentDayRel = str_pad($currentDay, 2, "0", STR_PAD_LEFT);
$date = "$currentDayRel$month$year";
//PROVA DI UN METODO NUOVO
$sql = "SELECT DISTINCT scadenza_file FROM files";
$q = $db->prepare($sql);
$q->execute();
$q->setFetchMode(PDO::FETCH_ASSOC);
while($caratt = $q->fetch()) {
$scadenza_file = $caratt['scadenza_file'];
$giorno_scadenza_file = substr($scadenza_file, 0, 2);
$mese_scadenza_file = substr($scadenza_file, 2, 2);
$anno_scadenza_file = substr($scadenza_file, 4, 4);
if ( $currentDayRel == $giorno_scadenza_file && date("m") == $mese_scadenza_file) { $calendar .= "<td style='background:green;' id='today_date' rel='$date'><a href='../index-utente.php?pagina=scadenzepergiorno&giorno=$currentDayRel&mese=$month&anno=$year'>i $currentDay</td>"; }
elseif($currentDayRel == $today_date && date("m") == $month){ $calendar .= "<td class='day_on' id='today_date' rel='$date'><a href='../index-utente.php?pagina=scadenzepergiorno&giorno=$currentDayRel&mese=$month&anno=$year'>ei $currentDay</td>"; }
else { $calendar .= "<td class='day' rel='$date'><a href='../index-utente.php?pagina=scadenzepergiorno&giorno=$currentDayRel&mese=$month&anno=$year'>e $currentDay</a></td>";}
}
// Increment counters
$currentDay++;
$dayOfWeek++;
}
[/PHP]tuttavia, ora è come se leggesse due volte la ELSE perchè mi stampa tutti i record due volte....
Come mai?