Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    34

    Raggruppare risultati in una tabella da stampare

    Salve, devo creare la stampa di alcuni dati provenienti dal database. Questi dati rappresentano l'occupazione nei diversi giorni di un certo impianto, e nel database si presentano così

    codice_impianto, data_inizio, data_fine, codice_cliente

    Ho creato una tabella con 31 caselle (come i giorni, 32 se si conta anche il nome dell'impianto) dove viene letto il record e vengono riempite le caselle corrispondenti.

    Alla fine ho una cosa del genere: http://www.olgiatapark.com/gestional...ion=print&id=2

    Vorrei però che le prenotazioni per lo stesso impianto vengano visualizzate su una stessa riga, quindi vorrei Box A01 vengano riempite le caselle 1,2,18,19,20 con i rispettivi codice_cliente. Come faccio?

    Il codice è questo:
    Codice PHP:
                    $query "SELECT codice_impianto, data_inizio, data_fine, codice_cliente  FROM $tablePrenotazioni WHERE azione = '1'";
                    
    $result mysqli_query($mysqli_connect,$query);    
                    
                        
    $n 0;
                        while (
    $row mysqli_fetch_assoc($result))
                        {
                            
                            
    $meseIn substr($row['data_inizio'],3,2);
                            
    $meseFi substr($row['data_fine'],3,2);
                            if(
    $meseIn == $meseSel or $meseFi == $meseSel)
                            {                    
                                
    $inizio substr($row['data_inizio'],0,2);
                                
    $fine substr($row['data_fine'],0,2);
                                
    $impianto[$n] = $row['codice_impianto'];
                                
    //$cliente = $row['codice_cliente'];


                                
    $queryImp "SELECT * FROM $tableImpianti WHERE codice = '$impianto[$n]'";
                                
    $resultImp mysqli_query($mysqli_connect,$queryImp);    
                                while (
    $rowImp mysqli_fetch_assoc($resultImp))
                                {
                                    
    $nomeImpianto[$n] = $rowImp['descrizione'];
                                }                                
                                
                                
                                for(
    $i=1$i<=31; ++$i)
                                {
                                    if(
    $i >= $inizio AND $i <= $fine)
                                    {
                                        
    $prenotazione[$i] = $row['codice_cliente'];
                                        
    $tdP[$i] = "$prenotazione[$i]";
                                    }
                                        else
                                            
    $tdP[$i] = "";                                        
                                    
                                    
    $tdG[$i] = "<td width='50px'>$i</td>";
                                }


                                    
    $tr[$n] = "
                                    <tr>
                                        <td class='left' width='200px'>
    $nomeImpianto[$n]</td>
                                        <td>
    $tdP[1]</td>
                                         <!-- ... continua così fino... -->
                                        <td>
    $tdP[31]</td>                
                                    </tr>                        
                                    "
    ;    
                                
                            
    $trImp .= $tr[$n];
                            ++
    $n;
                            }
                        } 
    Ho provato a inserire GROUP BY codice_impianto nella prima quary, ma viene visualizzata solo l'ultima riga.
    Grazie a tutti per l'aiuto

  2. #2
    Ciao, secondo me è in problema di logica di organizzazione dei dati.
    Potresti postare la struttura del DB? O meglio le tabelle interessate in questa operazione.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    34
    Ok, ti posto la struttura delle due tabelle

    IMPIANTI:
    1 id int(4)
    2 descrizione varchar(20)
    3 codice varchar(10)
    4 data timestamp
    5 creato_da varchar(12)
    6 azione int(1)
    7 ultima_modifica timestamp
    8 tipologia varchar(20)
    9 prestazione varchar(20)
    10 note varchar(100)
    11 codId int(4)

    PRENOTAZIONI
    1 id int(4)
    2 codice_impianto varchar(4)
    3 codice_cliente varchar(4)
    4 data timestamp
    5 creato_da varchar(12)
    6 azione int(1)
    7 ultima_modifica timestamp
    8 codice_cavallo varchar(4)
    9 data_inizio varchar(10)
    10 ora_inizio varchar(5)
    11 data_fine varchar(10)
    12 ora_fine varchar(5)
    13 codice_prestazione varchar(4)
    14 tipo_sconto varchar(10)
    15 importo_totale varchar(7)
    16 note varchar(100)

    Grazie per l'aiuto

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    34
    per il momento ho risolto verificando se l'impianto attualmente nel ciclo ha dei duplicati scrivendo solo la riga appartenente all'ultimo record.. se a qualcuno può interessare posso pubblicare il codice

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.