• User Attivo

    Ciclo su query 1_a_N da sistemare in una <TABLE>

    Salve scusate il titolo ma non mi veniva altro di + inerente al mio problemone :arrabbiato:

    Ho una situazione simile a questa:
    1 classico ciclo su una query che mi restituisce questa struttura di dati


    **Dipendente | St| A| SALDO **
    Pingo Pallo | 900| 100|(stipendio-acconto)
    Pingo Pallo | 900| 220|(stipendio-acconto)
    Pingo Pallo | 900 | 40 |(stipendio-acconto)
    Tizio Rossi | 940 | |(stipendio-acconto)
    Mario Bianchi | 940 |110|(stipendio-acconto)
    Mario Bianchi | 940|200 |(stipendio-acconto)


    *St=Stipendio
    *A=Acconto

    ora con un ciclo devo popolare una classica tabella solo che trattandosi di righe duplicate (perchè 1 dipendente può aver recepito zero;1 o + acconti) piazzo un IF all'interno del ciclo che mi controlla quando parte un nuovo dipendente (la query ha un ordinamento sul cognome+nome dipendente) e quindi mi regola la struttra fino alla terza CELLA *"<td>".$acconti."</td>" *ma il calcolo del saldo non riesco in nessuna maniera a piazzarlo al posto giusto :mmm: qualche suggerimento ?!?!?

    Thanks


  • User Attivo

    ...incollo un pò di codice che forse + chiarire di più :

    [PHP]
    $strSelect='SELECT utenti.* , stipendio.* , stipendio_acconti.* , modalita_pagamento.*
    FROM utenti
    INNER JOIN stipendio ON utenti.id = stipendio.ute_id_fk
    LEFT JOIN stipendio_acconti ON stipendio_acconti.sti_id_fk = stipendio.id
    LEFT JOIN modalita_pagamento ON modalita_pagamento.id = stipendio_acconti.modalita_id_fk
    WHERE mese=1 AND anno=2009 ORDER BY utenti.cognome ASC';

    $result=mysql_query($strSelect,$link)or die('problemi con la query dei dipendenti !!');

    while ($row=mysql_fetch_array($result)){
    if($dipendente!=$row['cognome']." ".$row['nome'])
    {
    echo "</td></tr>";// NUOVA RIGA
    // Memorizzo il nome DIPENDENTE
    $dipendente=$row['cognome']." ".$row['nome'];
    echo "<tr>";
    echo " <td>".$dipendente."</td>"; // RIGO DIPENDENTE
    echo " <td>€ ".$row['importo']."</td>";// RIGO STIPENDIO
    echo " <td>".$row['desc']." € ".$row['amount']."<br>"; // RIGO ACCONTI

    }else{
    

    echo $row['amount']."<br>";// Aggiungo acconti uno sotto l'altro
    }
    }
    [/PHP]


  • User Attivo

    ... se è impossibile ottenere quello che vorrei, ditemelo almeno mi metto l'anima in pace !!! 🙂

    tnks


  • User Attivo

    Ciao,
    questa è una possibile soluzione:

    [php]
    while ($row=mysql_fetch_array($result)){
    if($dipendente!=$row['cognome']." ".$row['nome'])
    {
    // Memorizzo il nome DIPENDENTE
    $dipendente=$row['cognome']." ".$row['nome'];
    $somma_acconti=0;
    echo "<tr>";
    echo " <td>".$dipendente."</td>"; // RIGO DIPENDENTE
    echo " <td>€ ".$row['importo']."</td>";// RIGO STIPENDIO
    echo " <td>".$row['desc']." € ".$row['amount']; // RIGO ACCONTI
    $somma_acconti+=$row['amount'];
    echo " <td>€ ".($row['importo']-$somma_acconti)."</td>"; // RIGO SALDO
    echo "</tr>";

    }else{
    echo "<tr>";
    echo " <td colspan="2"> </td>";
    echo " <td>".$row['desc']." € ".$row['amount']; // RIGO ACCONTI
    $somma_acconti+=$row['amount'];
    echo " <td>€ ".($row['importo']-$somma_acconti)."</td>"; // RIGO SALDO
    echo "</tr>";
    }
    }
    [/php]

    Alessadro


  • User Attivo

    Ciao Alessandro, grazie per la risposta, però ho dimenticato di scrivere che il risultato singolo che deve stare in un rigo (<tr></tr>) lo vorrei in questa forma

    <tr>
    <td>$dipendente</td>
    <td>$Stipendio</td>
    <td>(lista degli acconti uno sotto l'altro)</td>
    <td>totale_saldo (unico valore, cioè $stipendio-gli_eventuali_acconti)</td>
    </tr>

    tnks 🙂


  • User Attivo

    Alessandro già che si siamo, posso ottenere l'effetto unica riga, anche avendone + di una per ogni $Dipendente eliminando il bordo alle celle (border='0') ?!!? :mmm:

    tnx