- Home
- Categorie
- Coding e Sistemistica
- Coding
- Ciclo su query 1_a_N da sistemare in una <TABLE>
-
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
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=Accontoora 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
qualche suggerimento ?!?!?
Thanks
-
...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]
-
... se è impossibile ottenere quello che vorrei, ditemelo almeno mi metto l'anima in pace !!!
tnks
-
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
-
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
-
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') ?!!?
tnx