1

我有一个从 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 个名为“A”和“B”的 CSS 类,用于奇数行和偶数行

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

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

所以我想要一种更简单的方法来完成偶数和奇数行,谢谢!

4

5 回答 5

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">

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

于 2012-06-01T14:12:30.240 回答
6

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

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

 // for even

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

});
于 2012-06-01T14:10:58.510 回答
1

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

    $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(); ?>
于 2012-06-01T14:14:35.927 回答
1
<?php
$class="odd"
while($row = mysql_fetch_array($rs)) { 
  $class = ($class=='even' ? 'odd' : 'even');
?>
<tr class="<?php echo $class">
...
</tr>
<?php } ?>
于 2012-06-01T14:15:27.177 回答
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 
}

基本上,模运算符返回除以它两侧的数字的余数,例如3 % 2 == 1, 4 % 2 == 05 % 2 == 1所以我们可以判断$i是奇数还是偶数,并交替添加到<tr>.

恕我直言,您希望以这种方式 100% 保证它会工作(无浏览器依赖项),或者如果您为现代浏览器设计应用程序,请选择 CSS 路线。

于 2012-06-01T14:14:58.690 回答