Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    202

    colorazione giorni calendario prendendo dati (giorni) su database (periodo giorni)

    Avendo un database coni seguendi campi:
    ID | GIORNO

    e utilizzando il seguente codice

    Codice PHP:
    mysql_select_db($database_test$test);
    $query_calendario "SELECT id, giorno FROM calendario";
    $array = array();
    $calendario mysql_query($query_calendario$test) or die(mysql_error());

        while (
    $row_calendario mysql_fetch_assoc($calendario)) {
        
    $array[] = $row_calendario['giorno'];
        }

    for (
    $i=1;$i<=date("t",$primo);$i++){
        if ((
    $i+$delta)%7==1) print "<tr>";
            if ((
    in_array($i,$array))&&($mm==date("n"))&&($aa==date("Y"))) {
            print 
    "<td style='background-color: #f00; color: #FFFFFF; text-align: center'>".$i."</td>";
            }
            else {
            print 
    "<td style='background-color: #000073; text-align: center; color:#FFFFFF'>".$i."</td>";
            }
            
            if ((
    $i+$delta)%7==0)
            print 
    "</tr>"//chiusura riga
    }

    print  
    "</table>"
    ho la possibilità di colorare i giorni sul calendario stampato, prendendo i dati dalla tabella...

    ma se avessi invece una cosa di questo tipo:

    ID | INIZIO_GIORNO | FINE_GIORNO

    come faccio a dire al codice di stamparmi tutti i giorni compresi tra INIZIO_GIORNO e FINE_GIORNO?

    x esempio se ho nella tabella una situazione del tipo:

    riga 1--> 1 | 15 | 28
    riga 2--> 2 | 16 | 24
    ...
    ...
    vorrei che nel calendario mi venissero colorati i giorni che vanno dal 15 al 28 e dal 16 al 24..

    come si fa?

  2. #2
    scusa, se già sai quali giorni devono avere un determinato colore non basterebbe eseguire una serie di controlli tipo:

    Codice PHP:
    if (($data >= $row_calendario['giorno_inizio']) && ($row_calendario['giorno_fine'] >= $data)) { print "<td style='background-color: #f00; color: #FFFFFF; text-align: center'>".$i."</td>"; } 
    ovviamente così è condizionato a molte istruzioni e soprattutto all'estrazione della riga nel db del periodo di tempo interessato.

    Altrimenti potresti aggiungere direttamente un campo alla tabella tipo: colore, dove ci registri il codice del colore corrispondende al periodo di tempo che sta sulla stessa linea, così è ancora più semplice e veloce capire che colore assegnare al campo.
    daN.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    202
    si ma la tabella non ha una riga sola... nel precedente codice avevo fatto un array...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.