Ti metto un codice semplificato di come si può gestire una cosa del genere (è una metodologia che viene chiamata "rottura di livello", ovvero fare determinate operazioni solo quando cambia un determinato valore in una serie di valori)
Codice PHP:
<?php
echo "<table width=900 cellpadding=5 cellspacing=1 border=0>";
$ultimo_nome_cliente = "";
$contatore = 0;
$riga = "";
$result = mysql_query("SELECT * FROM $table ORDER BY $metodo $modo, nome_cliente ASC",$db);
while ($row = mysql_fetch_array($result))
{
$descrizione = $row["descrizione"];
$nome_cliente = $row["nome_cliente"];
$pagato = $row["pagato"];
if($ultimo_nome_cliente != $nome_cliente)
{
if($ultimo_nome_cliente != "")
{
if($contatore > 2)
$colore = "yellow";
else
$colore = "red";
$riga = str_replace("miocolore",$colore,$riga);
echo $riga;
}
$riga = "";
$contatore = 0;
$ultimo_nome_cliente = $nome_cliente;
}
$riga .= "<tr bgcolor='miocolore'><td>$nome_cliente</td></tr>";
if($pagato == "PAGATO") $contatore++;
}
// per l'ultima riga ancora non stampata
if($contatore > 2)
$colore = "yellow";
else
$colore = "red";
strreplace("miocolore",$colore,$riga);
echo $riga;
?>
In pratica come funziona
Ogni riga viene memorizzata in questo modo
$riga .= "<tr bgcolor='miocolore'><td>$nome_cliente</td></tr>";
Quindi $riga conterrà diverse righe (grazie al .=)
e un contatore ($contatore) viene incrementato ogni volta che la riga è PAGATA
Quando leggi un cliente NUOVO (nome diverso dal precedente => $nome_cliente != $ultimo_nome_cliente) il php sostituisce (str_replace) la scritta "miocolore" con "yellow" o "red" a seconda se contatore è > 2 o meno
Dopo di che fa echo di $riga (che quindi stamperà le righe di quell'utente con il colore giusto) e setta di per il nuovo cliente
$riga = "";
$contantore = 0;
$ultimo_nome_cliente = $nome_cliente;
In pratica non fa nessuna echo fin quando non cambia il cliente, tenendo tutto "in memoria" nella variabile $riga
Dato però che non fa echo fino a che non cambia cliente l'ultima riga non viene stampata nel ciclo, per questo motivo fuori della while ti ritrovi le istruzioni
if($contatore > 2)
$colore = "yellow";
else
$colore = "red";
$riga = str_replace("miocolore",$colore,$riga);
echo $riga;
Spero possa esserti utile