Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481

    funzionamento calendario

    Ciao a tutti, vorrei realizzare un calendario ad uso agenda, mi sapreste dare un cosiglio su come generare la tabella mensile impaginata per giorni della settimana? Vedo che in molti siti c'è questo sistema, ma ovviamente non ho accesso al codice.

    1. Partendo dalla data attuale, come faccio a generare tutti i giorni del mese in una tabella con in intestazione i classici L M M G V S D? Poi il resto dovrebbe venire da se.

    2. Per vedere gli impegni del giorno, ho pensato di creare gli impegni con una data iniziale ed una finale, poi quando genero ciclicamente il mese, per ogni giorno, controllo se per quella data c'è una corrispondenza in un intervallo di tempo negli impegni, è giusto il mio approccio? L'unica cosa che mi lascia perplesso è il db, non vorrei appesantirlo troppo, perchè praticamente, quando genero il mese, farei 30 query (una per ogni giorno) per vedere se quella data è presente in uno degli intervalli di tempo della tabella "appuntamenti"

    Ciao a tutti e grazie

  2. #2
    query 1 sola per ogni mese, risultati per giorno, cosi' in un solo for per ogni match hai la tua agenda.

    Per il calendario prova questa:
    http://www.devpro.it/?php4/code/62/

    e considera che un calendario e' 6 righe per 7 colonne
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    esempio:
    codice:
    $thisMonth = getMonth( date('m'), date('Y') );
    $output = '<table>';
    $output .= '<tr><td>D</td><td>L</td><td>M</td><td>M</td><td>G</td><td>V</td><td>S</td></tr>';
    $cell = 0;
    for( $a = 0, $b = 6; $a < $b; $a++ ) {
    	$output .= '<tr>';
    	for( $c = 0, $d = 7; $c < $d; $c++ ) {
    		$output .= '<td>'.$thisMonth[$cell++].'</td>';
    	}
    	$output .= '</tr>';
    }
    $output .= '</table>';
    echo $output;
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #4
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da andr3a
    esempio:
    codice:
    $thisMonth = getMonth( date('m'), date('Y') );
    $output = '<table>';
    $output .= '<tr><td>D</td><td>L</td><td>M</td><td>M</td><td>G</td><td>V</td><td>S</td></tr>';
    $cell = 0;
    for( $a = 0, $b = 6; $a < $b; $a++ ) {
    	$output .= '<tr>';
    	for( $c = 0, $d = 7; $c < $d; $c++ ) {
    		$output .= '<td>'.$thisMonth[$cell++].'</td>';
    	}
    	$output .= '</tr>';
    }
    $output .= '</table>';
    echo $output;
    Grazie mille! nel pomeriggio mi metto all'opera!

    Solo una cosa non mi è chiara

    query 1 sola per ogni mese, risultati per giorno, cosi' in un solo for per ogni match hai la tua agenda
    Questo è uno pseudo calendario, voglio solo poter visualizzare il mese e contraddistinguere con un background diverso il giorno occupato. Non ho bisogno della divisione per fascie orarie, ma solo per mezza giornata, quindi quando visualizzo il giorno, lo devo visualizzare in due caselle (no problem) e colorare le mezze giornate occupate. L'unica cosa che mi viene in mente è quella di fare una query per ogni mezza giornata, quindi circa 60 per ogni mese per vedere se la mezza giornata che il ciclo che mi hai postato sta generando è libera o occupata.

  5. #5
    non si fanno query dentro un for, o meglio e' sconsigliabilissimo ... fai una sola query con tutti i risultati del mese poi controlli che se il giorno del risultato ( inserito prima in un array ) ha eventi ... fai quello che devi fare.

    1 array, tutti e 42 giorni del mese che looppati formano la griglia utile

    1 array, tutte le date utili del mese prese da una sola query


    nel for di generazione calendario controlli che se

    isSet( $array_query['giorno'.$thisMonth[$cell]] ) {
    // cambi solore, metti il link o fai quello che ti pare
    }
    else {
    // giorno senza eventi ...
    }

    in questo caso $cell lo incrementi non dentro l' array del mese ma dopo ...
    codice:
    for( $a = 0, $b = 6; $a < $b; $a++ ) {
    	$output .= '<tr>';
    	for( $c = 0, $d = 7; $c < $d; $c++ ) {
    		$output .= '<td>'.$thisMonth[$cell].'</td>';
    		$cell++;
    	}
    	$output .= '</tr>';
    }
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    esempio completo
    codice:
    $array_eventi = Array( 'giorno_2' => 'evento x', 'giorno_20' => 'etrento y :fagiano:', 'giorno_21' => 'ebrezza z :fagiano:' );
    $thisMonth = getMonth( date('m')+1, date('Y') );
    $output = '<table>';
    $output .= '<tr><td>D</td><td>L</td><td>M</td><td>M</td><td>G</td><td>V</td><td>S</td></tr>';
    $cell = 0;
    for( $a = 0, $b = 6; $a < $b; $a++ ) {
    	$output .= '<tr>';
    	for( $c = 0, $d = 7; $c < $d; $c++ ) {
    	        if( isSet( $array_eventi[ 'giorno_'.$thisMonth[$cell] ] ) == true ) {
    	                $output .= '<td style="background-color: #F5F5F5;">'.$thisMonth[$cell].'</td>';
    	        }
    		else {
    			$output .= '<td>'.$thisMonth[$cell].'</td>';
    		}
    		$cell++;
    	}
    	$output .= '</tr>';
    }
    $output .= '</table>';
    echo $output;
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da andr3a
    esempio completo
    codice:
    $array_eventi = Array( 'giorno_2' => 'evento x', 'giorno_20' => 'etrento y :fagiano:', 'giorno_21' => 'ebrezza z :fagiano:' );
    $thisMonth = getMonth( date('m')+1, date('Y') );
    $output = '<table>';
    $output .= '<tr><td>D</td><td>L</td><td>M</td><td>M</td><td>G</td><td>V</td><td>S</td></tr>';
    $cell = 0;
    for( $a = 0, $b = 6; $a < $b; $a++ ) {
    	$output .= '<tr>';
    	for( $c = 0, $d = 7; $c < $d; $c++ ) {
    	        if( isSet( $array_eventi[ 'giorno_'.$thisMonth[$cell] ] ) == true ) {
    	                $output .= '<td style="background-color: #F5F5F5;">'.$thisMonth[$cell].'</td>';
    	        }
    		else {
    			$output .= '<td>'.$thisMonth[$cell].'</td>';
    		}
    		$cell++;
    	}
    	$output .= '</tr>';
    }
    $output .= '</table>';
    echo $output;
    Già così è tutta un'altra cosa...grazie mille, credo mi sia sufficente questo. Grazie ancora.

    OT: conosci qualche forum sulla matematica? Non mi ricordo come calcolare una cosa elementare sulla geometria e non so neanche come cercare la soluzione...

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.