• User

    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.


  • User

    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?