Aggragare celle di record consecutivi che hanno lo stesso valore

di il
16 risposte

16 Risposte - Pagina 2

  • Re: Aggragare celle di record consecutivi che hanno lo stesso valore

    Dove esegui il controllo se stai trattando la prima riga con prima riga a true, inserisci il campo master, poi setti a false e non riscrive il master in modo che hai una sola cella come master.

    Se oltre a scrivere il campo master, hai la necessità di non duplicare i record unici lato master, basta che aggiungi anche gli altri campi che non vuoi replicare.

    Es.

    Id master.  Nominativo.  Selezione variabile note

    1.                 Pippo.              Ciao.           A        Nota

    1.                 Pippo.              Addio.         A        Nota

    Ecc....

    Li vedi così:

    Id master.  Nominativo.  Selezione variabile note

    1.                 Pippo.              Ciao.            A      Nota 

                                                  Addio.          A             

    Ecc....

    Ma fa lacrimare...

    In questi casi meglio

    Master 1.   Nome Pippo

    ----------------------------------------

    Ciao.       |   A

    Addio      |

    ----------------------------------------

    Note: nota

    ----------------------------------------

    Master 2.   Nome Pluto

    Ecc....

    In altre parole se ha senso raggruppare una casella la inserisci nel blocco dove prima riga è true altrimenti la metti o in testa o in piè record.

    In breve avevo scritto che se prima riga true ok inserisci il master e ok inserisci altro campo da raggruppare.

    Poi vedendo il risultato ho ritenuto opportuno inserirlo a chiusura ciclo.

    Puoi inserire la parte iniziale a inizio ciclo come nell'esempio sopra. La regola è la stessa della Nota di chiusura ma la stai chiamando per prima e quindi diventa intestazione non piede.

    Spero di essermi spiegato.

  • Re: Aggragare celle di record consecutivi che hanno lo stesso valore

    03/04/2026 - sihsandrea ha scritto:

    Ma fa lacrimare...

    Probabilmente hai ragione sul fatto che nn ti piaccia, ma io ho bisogno di vederla.

    Mettiamo il caso che mi possa andare bene: le note possono essere meglio sistemate come riga a parte come mi hai suggerito,
    ma per esempio sicuramente il valore del campo autista nei record multipli alla stesso modo del valore in id_master lo preferisco rappresentato in 
    una cella unita.

    La situazione è questa:

    Nelle parti in arancio cerco di farti capire le lacune che non riesco a colmare in ciò che cerco di capire.

    ...preparazione dell'intestazione delle tabelle.

    while($row = $risultato_select->fetch_assoc()){
    	$dati_idmaster[$row['id_master']][] = $row;
    }

    //con  il ciclo organizzo i dati che vengono prelevati dal database in una matrice e raggruppati secondo il valore in id_master. Giusto?

    Per cui mi trovo per ogni valore letto in id_master un array con vari elementi a indice numerico [0][1][2], per ogni elemento di qeusto indice un array  ho un array assicuativo con chiave (nome campo) =>valore (record)

    foreach($dati_idmaster as $id_master => $righe){
     $rowspan = count($righe);
     $prima_riga = true;

    //per ogni raggruppamento devo contare quante righe (elementi array) ci sono, per avere il valore da passare all'attributo rowspan Giuso ?

    //Io non capisco dove inserire il codice per accorpare anche, per esempio, le celle dove appare il campo 'autista' e in che maniera, oltre a quelli già accorpati riferiti a id_master, 

    Cioe devo fare un altro foreach accanto a questo o dentro lo stesso ? 

    Potresti  per cortesia farmi un esempio concreto su questo costrutto?  

       
    
        foreach($righe as $record){
    
            $timestamp_data = strtotime($record["data"]);
            $newdate = date('d / m / Y', $timestamp_data);
    
            echo "<tr>";
    
            if($prima_riga)
            {
                echo "<td class='id-reg' rowspan='$rowspan'>$id_master</td>";
                $prima_riga = false;
            }
    
            echo "
                <td>{$record['autista']}</td>
    			<td>{$record['id']}</td>
                <td>{$record['stato']}</td>
                <td>$newdate</td>
                <td>{$record['tipologia']}</td>
                <td>{$record['macchina']}</td>
                <td>{$record['servizi_da_svolgere']}</td>";
    		echo "</tr>";
        }
Devi accedere o registrarti per scrivere nel forum
16 risposte