Repository 32bit  Forum
Repository 64bit  Wiki

Aiuto calendario con database

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

Aiuto calendario con database

Messaggioda darkstaring » gio giu 28, 2012 12:49

Salve :)...
Mi hanno chiesto di realizzare un calendario in php e mysql che segni in rosso i giorni feriali (inseriti da utente) e weekend.
Il mio problema sta nel db... non riesco a non creare un modello senza una sfilza di N a N..

Esite qualche funzione mysql che semplifichi il tutto??
Quali entita' usereste nel db??
Altri consigli???

Vi ringrazio
Francesco
:o
darkstaring
Linux 2.4
Linux 2.4
 
Messaggi: 368
Iscritto il: mer ott 13, 2010 12:55
Desktop: xfce
Distribuzione: Kali Linux

Re: Aiuto calendario con database

Messaggioda darkstaring » gio giu 28, 2012 13:15

Ora stavo pensando a questa soluzione anche se e' una porcheria:
Codice: Seleziona tutto
GIORNI   1 ======== N  FESTIVITA' N =========== 1  MESI
id                     id                           id
numero                 idmese                    nome
                       idgiorno             
                       festivo (bool)


Ci sono molti problemi, FESTIVITA conterrebbe record del tipo
`1`1`1`V`
`1`1`2`F`
`1`1`3`F`
ci metterei un giorno per riempire tutto senza dei for mirati in base ai giorni del mese, comunque credo che funzionerebbe anche se non tengo conto degli anni...
Inoltre non tengo conto del primo giorno della settimana ma credo di poterlo ricavare senza bisogno di aggiungerli nel DB da php.
Cosa ne pensate?
darkstaring
Linux 2.4
Linux 2.4
 
Messaggi: 368
Iscritto il: mer ott 13, 2010 12:55
Desktop: xfce
Distribuzione: Kali Linux

Re: Aiuto calendario con database

Messaggioda miklos » gio giu 28, 2012 13:34

guardando la tua soluzione forse non ho capito cosa devi ottenere... a cosa ti serve memorizzare sul database i giorni feriali e i week-end se puoi agevolmente ottenerlo tramite php stesso?!?!?!

eventualmente che tipo di manipolazione devi fare successivamente?!!?!?
se chiarisci un po' meglio quest'aspetto la soluzione da adottare per modellare il db puo' variare.

ad occhio pero' non capisco la 'forzatura' che stai adottando di splittare giorni-mesi-anni quando potresti tranquillamente memorizzarli in un unico campo data con associato campo dove specifichi il tipo di 'giorno'(feriale, week-end etc etc etc)
in questo modo con una query secca riesci a tirati fuori agevolmente tutti i giorni feriali(per esempio) semplicemente facendo un between da sql fra il primo giorno del mese e l'ultimo.
ho visto cose che voi astemi non potete immaginare
miklos
Linux 3.x
Linux 3.x
 
Messaggi: 1240
Iscritto il: lun lug 16, 2007 16:39
Località: Roma
Slackware: 14.1 64bit
Kernel: 3.16.3
Desktop: openbox 3.5.2

Re: Aiuto calendario con database

Messaggioda darkstaring » gio giu 28, 2012 14:56

Grazie miklos..
miklos ha scritto:guardando la tua soluzione forse non ho capito cosa devi ottenere... .



Quello che devo ottenere è una pagina web con 2 form,
il primo deve contenere una casella di input per l'immissione dei giorni feriali da salvare su db;
il secondo deve stampare un calendario del tipo:

Codice: Seleziona tutto
L M M G V S D
      1 2....

Tutti i weekend e i giorni feriali (letti da db) devono essere scritti in rosso mentre tutti gli altri in nero...
non sò perchè ho abbandonato l'idea di tenere un'unica tabella.. mi sembrava troppo semplice forse.
miklos ha scritto:ad occhio pero' non capisco la 'forzatura' che stai adottando di splittare giorni-mesi-anni quando potresti tranquillamente memorizzarli in un unico campo data con associato campo dove specifichi il tipo di 'giorno'(feriale, week-end etc etc etc)
in questo modo con una query secca riesci a tirati fuori agevolmente tutti i giorni feriali(per esempio) semplicemente facendo un between da sql fra il primo giorno del mese e l'ultimo.


ora provo con un' unica tabella...
se ho qualche difficoltà chiedo :)..

Grazie
darkstaring
Linux 2.4
Linux 2.4
 
Messaggi: 368
Iscritto il: mer ott 13, 2010 12:55
Desktop: xfce
Distribuzione: Kali Linux

Re: Aiuto calendario con database

Messaggioda darkstaring » gio lug 05, 2012 11:40

Ho trovato questa soluzione per scrivere il calendario

Codice: Seleziona tutto
function scrivicalendario ($giorno, $mese, $anno)
{
print "<Table border=1>";
print "<tr> <td>Domenica</td><td>Lunedi</td><td>Martedi</td><td>Mercoledi</td><td>Giovedi</td><td>Venerdi</td><td>Sabato</td> </tr>";

for ($x=0; $x<5; $x++)
{
for ($y=0; $y < 7; $y++)
  {
    $data= mktime (0, 0, 0, $mese, $giorno, $anno);
    $array_giorno = getdate($data);

    if( ($giorno == 1) && ("$array_giorno[wday]" == $y) )
    {
      print "<td> $array_giorno[mday]</td>";
      $giorno++;
    }
    elseif ($giorno != 1)
      {
   if ( "$array_giorno[mon]" != $mese)
     {     
       break;
     }
   print "<td> $array_giorno[mday]</td>";
        $giorno++;
      }
     else
      {     
   print "<td> &nbsp </td>";
      }
  }
 print "</TR><tr>";
}
}
print "</table>";
?>
è sicuramente ottimizzabile (credo)
comunque funge :).. adesso dovrei aggiungere le festività
darkstaring
Linux 2.4
Linux 2.4
 
Messaggi: 368
Iscritto il: mer ott 13, 2010 12:55
Desktop: xfce
Distribuzione: Kali Linux


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti

cron