Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854

    Stampare coppie di valori

    Salve a tutti,
    chiedo il vostro supporto.

    Ho un tabella (settimana_schema) strutturato come:
    id - giugno_1 - giugno_2 - giugno_3- giugno_4- giugno_5 - luglio_1- luglio_2- luglio_3- luglio_4 - luglio_5 - agosto_1 - agosto_2 - agosto_3 - agosto_4 - agosto_5 - settembre_1 - settembre_2- settembre_3- settembre_4- settembre_5
    dove tranne il campo ID si tratta di campi DATE.

    La mia esigenza è far visualizzare i valore in coppia, mi spiego:
    giugno_1 - giugno_2
    giugno_2 - giugno_3
    giugno_3 - giugno_4
    giugno_4 - giugno_5
    giugno_5 - luglio_6

    Praticamente ci sono quasi, funziona tutto tranne per l'ultima colonna:
    1) ho dichiarato un array che contiene esattamente i mesi di mio interesse;
    2) ricavo il nome delle colonne presenti nel database;
    3) rimuovo i campi che contengono valori del tipo 0000-00-00
    4) visualizzo solo il giorno per ogni campo
    5) l'obiettivo finale è ottenere una tabella di questo tipo:


    Giugno Luglio Agosto Settembre
    01-08 08-15 15-22 22-29 29-06 06-13 13-20 20-27 27-03 03-10 10-17 17-24 24-31 31-07 07-14 14-21 21-28 28-01

    Il problema si presenta esattamente nell'ultimo campo, ove:
    settembre_3 vale 2014-09-21
    settembre_4 vale 2014-09-28
    settembre_5 vale 0000-00-00

    Quindi settembre dovrebbe fermarsi alla coppia 21-28, senza visualizzare l'ultima coppia.

    Per far tutto ciò ho usato il seguente codice:

    Codice PHP:
            <?php 
                $array_mesi 
    = array('giugno''luglio''agosto''settembre');
                foreach(
    $array_mesi as $mese){
                    
    //PRELEVO LO SCHEMA DELLA TABELLA
                    
    $q_settimana mysql_query("SELECT COLUMN_NAME
                                                FROM INFORMATION_SCHEMA.COLUMNS
                                                WHERE table_name = 'settimane_schema'
                                                AND table_schema = 'fiorellamalagnino'
                                                AND column_name LIKE '"
    .$mese."%'") or die ( mysql_error() );
                    
    //MI COSTRUISCO LA QUERY
                    //STRINGA di appoggio per il nome delle colonne di quel mese (giugno_1, giugno_2, etc...)
                    
    $eln_sett "";
                    while(
    $r_settimana mysql_fetch_array($q_settimana)){ 
                    
                        
    $eln_sett .= $r_settimana[0].',';
                        
    //STRINGA per avere sempre il nome delle colonne
                        
    $eln_sett_gg .= $r_settimana[0].',';
                    }
                    
    //RIMUOVO LA VIRGOLA DALL'ULTIMO ELEMENTO
                    
    $eln_sett substr_replace($eln_sett"", -1);
                    
                    
    //QUERY PER VERIFICARNE IL VALORE;
                    
    $q_verifica mysql_query("SELECT ".$eln_sett." FROM settimane_schema WHERE id = 1 ") or die ( mysql_error() );
                    
    $r_verifica mysql_fetch_array($q_verifica);
                                   
                    
    $count_sett 0;
                    
                    
    //CONTEGGIO PER IL COLUMN SPAN
                    
    foreach (array_unique($r_verifica) as $sett_stato){

                        if(
    $sett_stato != 0000-00-00){ $count_sett++; }
                    
                    }
                    
                    echo 
    '<td colspan="'.$count_sett.'" align="center" class="disp_mese">'.ucfirst($mese).'</td>';
                    
                }
            
    ?>
            </tr>
            <!-- GIORNI -->
            <tr>
            <?php 
                $eln_sett_gg 
    substr_replace($eln_sett_gg"", -1);
                                        
                
    $q_giorni mysql_query("SELECT ".$eln_sett_gg." FROM settimane_schema WHERE id = 1") or die ( mysql_error() );
                                                
                
    $r_giorni mysql_fetch_array($q_giorni);
                             
                 
    //Rimuovo gli elmenti vuoti, cioè 0000-00-00
                 
    $r_giorni array_diff($r_giorni,array('0000-00-00'));  
                 
                 
    $r_giorni array_values(array_unique($r_giorni));
                              
                    
    $eln_sett_gg_single explode(","$eln_sett_gg);
                                    
                    foreach(
    $r_giorni as $key => $val){

                           
    $date date("d",strtotime($val));
                           
                           
    $date_next date("d",strtotime($r_giorni[$key+1]));                   
                        
                           echo 
    '<td style="padding: 3px" align="center"><font size="1"><span style="font-size:92%">'.$date.'-'.$date_next.'</span></font></td>';
                    }
            
    ?>            
            </tr>
            <tr>
    </table>
    Spero che sia strato chiaro.

  2. #2
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    L'obiettivo finale è realizzare qualcosa di simile a questo: link.

    Quindi ho pensato di modificare la struttura della tabelal settimana_schema in:
    ID - PeriodName - Start - End

    esempio:
    1 - giugno_1 - 31/06/2014 - 07/06/2014

    cosa ne pensate?

    Da lì viene meglio effettuare anche la relativa visualizzazione.

    Grazie.

  3. #3
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    Ragazzi, alla fine ho rifatto l'intera tabella settimana_schema come:

    id - checkin - checkout

    così da avere la doppia coppia di lavori.

    Anche se avrei potuto usare una solo colonna dato che checkin è uguale all'ultimo checkout inserito.

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.