Per cominciare ti invito ad abilitare la visualizzazione di tutti gli errori in fase di sviluppo e risolvere tutti i notice che vengono sollevati.

Secondariamente, il problema si può risolvere molto facilmente "inizializzando" le variabili prima del ciclo while:

Codice PHP:
$rif_fornitore '';
$rif_fattura '';
$rif_datafattura '';

while (...) { 
Per quanto riguarda i record 4 e 5, il comportamento è corretto. E' esattamente quello che deve fare tale codice. Se ti aspetti un comportamento diverso, devi definire meglio il problema.

Ad esempio perchè solo i record 3 e 6 sono di colori diversi e non anche il 7?