Alternando i colori delle righe in PHP loop

Come posso avere un colore alternato righe nel mio ciclo php?

$num = mysql_num_rows($qPhysician);

$i=0;

while($i < $num)

{

    echo "<tr>";
    echo "<td>" . mysql_result($qPhysician,$i,"lastName") . "</td>";
    echo "<td>" . mysql_result($qPhysician,$i,"firstName") . "</td>";
    echo "</tr>";

    $i++;

}

Devo omettere il “<” e “>”, sia per “tr” e “td”, perché non era permesso a questa domanda. 🙂

grazie!

hai avuto la tua domanda di formattazione fissa per due volte — rallentare e a capire. Evidenziare la porzione di codice e fare clic sul {} simbolo nell’editor, per favore. Il <> sono ammessi nel tuo esempio, se si contrassegna come codice.
stai parlando di colori alternati nella tabella o nella selezione dei dati solo da alternare indici — si prega di chiarire?
mi dispiace per la confusione. Sì colore alternando righe 🙂

OriginaleL’autore Arnold Porche Villaluz | 2011-07-17

5 Replies
  1. 9

    Che cosa vuoi dire? Stai dicendo che si desidera eco in una tabella che alterna righe?

    $num = mysql_num_rows($qPhysician);
    $i=0;
    echo "<table>"
    while($i < $num)
    
    {
    if ($i % 2 == 0){
    echo "<tr class='style1'>";
    }
    else{
    echo "<tr class='style2'>";
    }
    echo "<td>" . mysql_result($qPhysician,$i,"lastName") . "</td>";
    
    echo "<td>" . mysql_result($qPhysician,$i,"firstName") . "</td>";
    
    echo "</tr>";
    
    $i++;
    
    }
    echo "</table>";
    questo funziona abbastanza bene! grazie!

    OriginaleL’autore Kevin Wang

  2. 2

    Continuando con l’esempio qui:

    $query = mysql_query("SELECT lastName, firstName FROM physicians");
    
    $i = 0;
    while( $arr = mysql_fetch_assoc( $query ) )
    {
        //use modulus (%). It returns the remainder after division.
        //in this case, $i % 2 will be 1 when $i is odd, 0 when even.
        //this is the ternary operator. 
        //it means (if this)? do this: otherwise this        
        //(Remember 1 is true and 0 is false so odd rows will be the odd
        //class, even rows the even class)
        echo ($i % 2)?'<tr class="odd">':'<tr class="even">';
        //Now, use array indexing.
        echo "<td>" . $arr[ "lastName" ] . "</td>";
        echo "<td>" . $arr[ "firstName" ] . "</td>";
        echo "</tr>";
        $i++;
    }
    questo funziona, MA si visualizza solo 2 righe. Attualmente ho 3 righe nel mio DB.
    Cosa succede quando si esegue una select * from medici?
    Perché il mysql_fetch funzioni praticamente sono al lavoro o sono GRANDE problemi.
    questa è la mia query: $qPhysician = mysql_query(“SELECT * FROM medici ORDER BY cognome ASC, nome ASC”);
    Ho aggiunto un’altra riga (per un totale di 4 righe), ma solo 3.

    OriginaleL’autore cwallenpoole

  3. 0

    all’interno del vostro mentre è possibile utilizzare:

    if ($i % 2 == 0)
       echo "even";
    else
       echo "odd";
    grazie! Kevin Wang è stato in grado di elaborare più.
    Sei il benvenuto. Ma penso che non dare un pesce, ma la canna da pesca. 😉

    OriginaleL’autore armandomiani

  4. 0
    <?php
    $host="localhost"; //Host name
    $username="root"; //Mysql username
    $password=""; //Mysql password
    $dbname=""; //Database name
    $tblname=""; //Table name
    //Connect to server and select databse
    mysql_connect("$host", "$username", "$password")or die("cannot connect");
    mysql_select_db("$dbname")or die("cannot select DB");
    $sql="SELECT * FROM $tblname";
    $result=mysql_query($sql);
    //Define $color=1
    $color="1";
    echo '<h3 align = "center"> Details <hr /></h3>';
    echo '<table width="400" border="1" align="center" cellpadding="2" cellspacing="0">';
    while($rows=mysql_fetch_row($result)){
    //If $color==1 table row color = #FFCCFF
    if($color == 1){
    echo "<tr bgcolor='#FFCCFF'><td>$rows[0]</td><td>$rows[1]</td><td>$rows[2]</td><td>$rows[3]</td></tr>";
    //Set $color==2, for switching to other color
    $color="2";
    }
    //When $color not equal 1, table row color = #FFC600
    else {
    echo "<tr bgcolor='#FFC600'><td>$rows[0]</td><td>$rows[1]</td><td>$rows[2]</td><td>$rows[3]</td></tr>";
    //Set $color back to 1
    $color="1";
    }
    }
    echo '</table>';
    mysql_close();
    ?>

    OriginaleL’autore aarju mishra

  5. 0

    Ecco un semplice trucco se stai cercando di alternare un gruppo di colori.

    Prima di aggiungere un po ‘ di css nell’head del documento.

        <style>
    
        div.red {
            background-color: #E87876;
        }
    
        div.burnt {
            background-color: #E89576;
        }
    
        div.orange {
            background-color: #E8B176;
        }
    
        div.mustard {
            background-color: #E8CE76;
        }
    
        div.yellow {
            background-color: #E6E876;
        }
    
        div.green {
            background-color: #CAE876;
        }
    
        </style>

    Quindi aggiungere i colori per il vostro ciclo.

        $colors = array('red','burnt','orange','mustard','yellow','green');
        $rowCount=0;
    
            while($row = mysql_fetch_array($sql))  
              { 
              $something=$row['data'];  
              if($rowCount==6) //number of colors in array 
                {
                $rowCount=0;   //reset to first color
                }
    
            echo "<div class=\"".$colors[$rowCount]."\">".$something."</div>";      
    
            $rowCount++;
    
              }

    OriginaleL’autore Michael Fallis

Lascia un commento