桌子的奇数和偶数行

时间:2012-06-01 14:07:48

标签: php javascript jquery mysql html

我有一个从MYSQL数据库中获取行的表

<table id="table1">
<?php
// Connect to database server
    mysql_connect("localhost", "root", "asnaeb") or die (mysql_error ());
// Select database
        mysql_query("SET NAMES `utf8`"); // UTF 8 support!!
    mysql_select_db("scores") or die(mysql_error());
// SQL query
    $strSQL = "SELECT * FROM latest";
// Execute the query (the recordset $rs contains the result)
    $rs = mysql_query($strSQL);
// Loop the recordset $rs
// Each row will be made into an array ($row) using mysql_fetch_array
    while($row = mysql_fetch_array($rs)) { 
// Write the value of the column FirstName (which is now in the array $row) 
?>

<?php echo $row['Header'].""; ?>
<tr>
<td id='date'><?php echo $row['Date'].""; ?></td>
<td id='time'><?php echo $row['Time'].""; ?></td>
<td id='hometeam'><?php echo $row['HomeTeam'].""; ?></td>
<td id='score'><?php echo $row['Score'].""; ?></td>
<td id='awayteam'><?php echo $row['AwayTeam'].""; ?></td>
<td id='other'><?php echo $row['Other'].""; ?></td>
</tr>

<?php } mysql_close(); ?>
</table>

我有2个css类叫做“A”和“B”,用于奇数行和偶数行

我目前通过将<tr>替换为<tr class='<?php echo $row['Row'].""; ?>'>来完成此操作,并且我在我的数据库表中有一个“行”列,我在A或B中添加偶数行或奇数行...问题如果我想在其中一个之间删除或添加一个新行,我将不得不改变另一个中的所有A和B.

我在另一个问题中看到很多方法可以在javascript或jquery中做到这一点,但对于一个普通的表,而TR不是我的情况......(尝试了其中一些脚本但无法修复)

所以我想要一个更简单的方法去做偶数和奇数行,谢谢!

5 个答案:

答案 0 :(得分:11)

一劳永逸地以CSS方式(没有内联类):

CSS中的

#table1 tr:nth-child(odd) td { background-color:#ebebeb }
#table1 tr:nth-child(even) td { background-color:#0000ff }
HTML中的

<table id="table1">

就是这样,无论你的表行是否被删除。

答案 1 :(得分:6)

您可以像这样轻松地使用jQuery添加这些类

$(function(){
  $('#table1 tr:odd').addClass('A');

 // for even

 $('#table1 tr:even').addClass('B');

});

答案 2 :(得分:1)

为什么不在while循环中使用modulo?这比将您的课程存储在数据库中更好...:

    $i = 0;        
    while($row = mysql_fetch_array($rs)) { 
    // Write the value of the column FirstName (which is now in the array $row) 
    ?>

    <?php echo $row['Header'].""; ?>
    <tr class="<?php echo $i%2 == 0 ? "class_A" : "class_B" ; $i++;?>" >
    <td id='date'><?php echo $row['Date'].""; ?></td>
    <td id='time'><?php echo $row['Time'].""; ?></td>
    <td id='hometeam'><?php echo $row['HomeTeam'].""; ?></td>
    <td id='score'><?php echo $row['Score'].""; ?></td>
    <td id='awayteam'><?php echo $row['AwayTeam'].""; ?></td>
    <td id='other'><?php echo $row['Other'].""; ?></td>
    </tr>

    <?php } mysql_close(); ?>

答案 3 :(得分:1)

<?php
$class="odd"
while($row = mysql_fetch_array($rs)) { 
  $class = ($class=='even' ? 'odd' : 'even');
?>
<tr class="<?php echo $class">
...
</tr>
<?php } ?>

答案 4 :(得分:0)

有很多方法可以做到这一点,PHP,Javascript甚至纯CSS。这是将类添加到每一行的PHP方法:

while($row = mysql_fetch_blahblah()) {

$i = 0; ?>
    <tr class="<?php echo $i % 2 == 0 ? 'class1' : 'class2';?>">
        <td>....</td>
    </tr>
<?php
$i++; // increment our counter 
}

基本上modulus operator会返回将nubmers划分到其两侧的剩余部分,例如3 % 2 == 14 % 2 == 05 % 2 == 1,因此我们可以判断$i 1}}是奇数或偶数,并替换添加到<tr>的类。

恕我直言,你想要这样做,100%保证它可以工作(没有浏览器依赖)或者如果你为现代浏览器设计你的应用程序去CSS路线。