Newsgroup: it.comp.www.php
Titolo: Colori righe tabella alternati

Salve a tutti,
ho una tabella che prende dati da un database e vorrei (per una maggiore 
visibilità) che i colori delle sue righe fossera di 2 diversi colori 
alternati tra loro, vi riporto il codice:
<table border="0" cellspacing="0" align="center" div class="corpo">
<?php
$query='select * from friends';
$result=mysql_query($query) or
 die ("Errore: ".mysql_error());
print('<td bgcolor="ffffff" align="center"><div 
class="headtabella">Gender');
print('<td bgcolor="ffffff" align="center"><div class="headtabella">Age');
print('<td bgcolor="ffffff" align="center"><div class="headtabella">Name');
print('<td bgcolor="ffffff" align="center"><div 
class="headtabella">Surname');
print('<td bgcolor="ffffff" align="center"><div class="headtabella">N° 
people');
print('<td bgcolor="ffffff" align="center"><div 
class="headtabella">Resident');
print('<td bgcolor="ffffff" align="center"><div 
class="headtabella">Preferences');
print('<td bgcolor="ffffff" align="center"><div 
class="headtabella">Contact');
print("<tr>");
while($riga=mysql_fetch_array($result))
{
 print("<td align='center'>$riga[gender]");
 print("<td align='center'>$riga[age]");
 print("<td align='center'>$riga[name]");
 print("<td align='center'>$riga[surname]");
 print("<td align='center'>$riga[n_people]");
 print("<td align='center'>$riga[resident]");
 print("<td align='center'>$riga[preferences]");
 print("<td align='center'>$riga[contact]");
 print("<tr>");
}
?>
</table>
Grazie a tutti,
Stefano 

$pari = FALSE;
while($row=mysql_fetch_array()){
    if($pari)
        echo "<tr bgcolor='colore1'>";
    else
        echo "<tr bgcolor='colore2'>";
    echo "<td>...</td>";
    echo "<td>...</td>";
    echo "<td>...</td>";
    echo "<td>...</td>";
    echo "<td>...</td>";
    echo "</tr>";
    $pari = !$pari;
}
Ciao
Marco 

ciao a me hanno dato questo suggerimento buona lettura
.......
......
echo <<< EOF
<table border="0">
 <tr>
  <th>titolo</th>
  <th>autore</th>
  <th>data</th>
  <th>vedi</th>
 </tr>
EOF;
$i=0;
while ($row = mysql_fetch_array($result)) {
 $coloreCell = ($i++ % 2) ? "#ccccff" : "#ccccee";
 $row['data'] = date("j/n/y", $row['data']);
echo <<< EOF
 <tr bgcolor="$coloreCell">
  <td>{$row['titolo']}</td>
  <td>{$row['autore']}</td>
  <td>{$row['data']}</td>
  <td><a href="view.php?id={$row['id']}">
       <img src="img/mostra.png" alt="mostra" />
      </a>
  </td>
 </tr>
EOF;
}
echo <<< EOF
</table>
EOF;
..........
........


> $coloreCell = ($i++ % 2) ? "#ccccff" : "#ccccee";
E cosa cambia?
Anzichè usare un test esplicito usi l'operatore condizionale.
Ma è la stessa cosa alla fine.
Ciao
Marco 

 align="center"><div class="headtabella">Surname');
A parte che quando devi scrivere una cosa del genere, invece di usare tante
print, utilizza "echo <<< _etichetta_"
Ovvero:
echo <<< EOT
 testo da scrivere contente anche apici doppi
EOT
 
Per il tuo problema con i colori alternati, puoi utilizzare un vettore ed un
contatore:
 
 $cont=0;
$arr_colori=array("yellow","blue");
 while($riga=mysql_fetch_array($result))
 {
 $cont++;
  print("<td bgcolor='".$arr_colori[$cont % 2]."'
align='center'>$riga[gender]");
       ...
       ...
 }
Questo è valido quando i colori sono due. Infatti, la posizione nell'array
può valere 0 o 1.
Con un piccolo sforzo lo puoi estendere al caso di più di 2 colori.
-- 
Ciao,
 Fabrizio
=== 
http://www.negusweb.it
 ===