Visualizzazione dei risultati da 1 a 10 su 10

Discussione: tabella orari in php

  1. #1

    tabella orari in php

    Salve sto realizzando il mio primo sito in php per un'amico che gestisce dei corsi .
    Per ogni corso dovrei mettere una tabella che indichi gli orari rispetto alla settimana ora inizio - ora fine.
    Il mio problema;

    La tabella nel'html dovrebbe risultare cosi

    ora lunedi martedi mercoledi ....
    8 8,30
    9 9,45 9,30
    10 10,10
    11 11,00 11,30
    12
    13 ecc ecc

    ho creato quindi la tabella sul db MySql contenente i seguenti campi:

    id
    fkidcorso
    ora inizio
    ora fine
    giorno

    il problema è che non so come estrarre i dati inseriti in una tabella simile a quella sopra ovvero
    che sulla riga di una determinata fascia oraria vadano a finire gli orari di inizio e l'orario di fine coincida con la riga corrispondente.

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    116
    Ciao!
    Ho appena fatto una cosa molto simile a quella che serve a te, in pratica il concetto che ho usato è questo:
    1 . divido la giornata lavorativa intervalli di 15 minuti.
    2 . faccio un ciclo for per ogniuno di questi intervalli in cui la variabile contatore moltiplica il mio intervallo base(15 minuti) e tramite lui controllo se è compreso nell'ora inizio e fine del corso di cui devo stampare la giornata.
    Se è compreso allora stampo una cella rossa, altrimenti la stampo verde.
    Se ti può servire ti posto tutta la funzione(un po' incasinata) ma fa esattamente quello che serve a te su una base dati quasi uguale alla tua, segnando orari di inizio e di fine!

  3. #3

    mafaldo a buon rendere!!!

    Si se puoi postarlo grazzissime
    hai un link dove lo posso vedere in funzione ?


  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    116
    Rettifico, guardando meglio mi sembra di capire che gli orari dei corsi nella giornata sono regolari, riesci a far meglio come vorresti la tabella di output?

  5. #5

    OK

    Ti allego un'immagine che mi riesce meglio.

    carina l'idea tua di segnare con colori diversi
    nella speranza che tu mi possa aiutare ...
    ciao
    Immagini allegate Immagini allegate

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    116
    Effettivamente intendevo un'altra cosa, ecco il mio risultato:

  7. #7

    mi sembra grandioso

    Mi sembra grandioso e molto meglio del mio

    forse posso provare a riadattarlo

    si pote vedere?
    in alternativa una mano?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    116
    Inizio con il passarti la funziona che crea la barra del giorno:
    Codice PHP:
    function get_barra_giorno($giorno,$id_prenotabile)
        {
     

        
    //come giornata intendo dalle 8.00 alle 18.30
        
    $ora_partenza ="08:00:00";
        
    $minutigiornata=630;
        
    //il minimo prenotabile è 15 minuti
        
    $minimointervallo=15;
        
    $altezzatot=30;
        
    $larghezzatot=10;
        
    $intervalligiornata=$minutigiornata/$minimointervallo;
        
    $hpixel=($intervalligiornata*$altezzatot)/$minutigiornata;
        
        echo 
    "<table cellspacing='0' cellpadding='0' class='testo'>";
        for(
    $i=0;$i<=$intervalligiornata;++$i)
            {
            
    $risultato1 =  run_query_fetch(run_query("SELECT DATE_FORMAT(data_dalle,'%H:%i') as dalle,
            DATE_FORMAT(data_alle,'%H:%i') as alle,
            DATE_FORMAT(DATE_ADD('1997-12-31 " 
    $ora_partenza  "', INTERVAL  " .  $i $minimointervallo " MINUTE ),'%H:%i') as attuale,
            010_prenotazioni.*, 005_user.username FROM 010_prenotazioni
            inner join 005_user on 010_prenotazioni.id_user = 005_user.id_utente
             where 
            
            DATE_FORMAT(data_dalle,'%d-%m-%Y') = '
    $giorno'  and
             DATE_FORMAT(DATE_ADD('1997-12-31 " 
    $ora_partenza  "', INTERVAL  " .  $i $minimointervallo " MINUTE ),'%H:%i')
             
             between DATE_FORMAT(data_dalle,'%H:%i') and DATE_FORMAT(data_alle,'%H:%i') and
            id_prenotabile=
    $id_prenotabile
             "
    ));
             
            
    $risultato  =  run_query_fetch(run_query("SELECT  
            DATE_FORMAT(DATE_ADD('1997-12-31 " 
    $ora_partenza  "', INTERVAL  " .  $i $minimointervallo " MINUTE ),'%H:%i') as attuale 
             FROM 010_prenotazioni  
             "
    ));

                    if(
    $risultato1['dalle'] == $risultato['attuale'] )
                    {
                        
    $tutta1'<td  bgcolor="#000000" colspan="2">[img]images/spacer.gif[/img]</td><td></td>';
                        }
                     else
                     {
                         
    $tutta1='';
                        }
                    if(
    $risultato1['alle'] == $risultato['attuale']  )
                    {
                        
    $tutta2'<td  bgcolor="#000000" colspan="2">[img]images/spacer.gif[/img]</td><td></td>';     
                        }
                       else
                      {
                         
    $tutta2='';
                        }
             if(
    $risultato1['dalle'] == $risultato['attuale'] or $risultato1['alle'] == $risultato['attuale']  )
                    {
                    if(
    $risultato1['dalle'] == $risultato['attuale'] )
                         
    $testa'<td align="right">' $risultato['attuale']  . 
    (' 
    $risultato1['username'] . ') </td> '
                     else
                        
    $testa'<td align="right">' $risultato['attuale']  . ' </td> '
                    }
            else
                    {
     
                    
    $testa'<td> </td> ';
                    }
            if(
    $risultato1['id_prenotazione'])
                
    $centro'<td  bgcolor="#ff0000">[img]images/spacer.gif[/img]</td> ';
             else {
                  
    $tutta1=$tutta2='';
                
    $centro'<td bgcolor="#00cc33">[img]images/spacer.gif[/img]</td> ';
                }    
             if( 
    $risultato['attuale'] =='12:30' or $risultato['attuale'] == '08:45' or $risultato['attuale'] =='13:30'  or  $risultato['attuale']=='17:00' )
                    {
                 
    $coda '<td>' $risultato['attuale']  . ' </td> ';
                
    $tutta'<td></td><td  bgcolor="#000000" colspan="2">[img]images/spacer.gif[/img]</td> ';
                    }    
            else
                    {
                
    $coda'<td> </td> ';    
                
    $tutta='';
                    }                
                

            if(
    $tutta1)
                         echo 
    "<tr>"  .  $tutta1 .  "</tr>
                         "
    ;                                                         
             echo 
    "<tr>"  .  $testa $centro $coda .  "</tr>
             "
    ;    
            if(
    $tutta2)
                         echo 
    "<tr>"  .  $tutta2 .  "</tr>
                         "
    ;                    
            if(
    $tutta)
                         echo 
    "<tr>"  .  $tutta .  "</tr>
                         "
    ;
            
    // echo $risultato1['attuale'] ."
    ";
            //DATE_FORMAT(003_note.data_nota,'%d-%m-%Y')
            
            }     
        echo "
    </table>";        
                
        } 

  9. #9

    grazie provo subito

    grazie provo subito

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    116
    #Questa è la tabella che ho utilizzato per gli oggetti che possono essere prenotati(sale o materiale vario),
    #nel tuo caso sarà la tabella dei corsi:

    CREATE TABLE `009_prenotabili` (
    `id_prenotabile` mediumint(8) unsigned NOT NULL auto_increment,
    `descrizione` text,
    `sala` set('1','0') default NULL,
    `nome` text NOT NULL,
    `materiale` set('1','0') default '0',
    PRIMARY KEY (`id_prenotabile`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ;

    #Questa è la tabella delle prenotazioni, simile alla tua:

    CREATE TABLE `010_prenotazioni` (
    `id_prenotazione` int(10) unsigned NOT NULL auto_increment,
    `id_user` mediumint(8) unsigned default NULL,
    `data_dalle` datetime default NULL,
    `data_alle` datetime default NULL,
    `id_prenotabile` mediumint(8) unsigned default NULL,
    PRIMARY KEY (`id_prenotazione`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=47 ;

    #e questa è la tabella degli utenti, che nel tuo caso puoi escludere

    CREATE TABLE `005_user` (
    `id_utente` int(11) NOT NULL auto_increment,
    `nome` text NOT NULL,
    `cognome` text NOT NULL,
    `username` text NOT NULL,
    `password` text NOT NULL,
    `id_permesso` int(11) default NULL,
    `amministrativo` set('1','0') default NULL,
    `email` text,
    PRIMARY KEY (`id_utente`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=48 ;

    #se ti serve una mano chiedi pure!comunque visto che è a intervalli regolari in realtà è una cosa molto più semplice!

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.