我有一个从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不是我的情况......(尝试了其中一些脚本但无法修复)
所以我想要一个更简单的方法去做偶数和奇数行,谢谢!
答案 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 == 1
,4 % 2 == 0
,5 % 2 == 1
,因此我们可以判断$i
1}}是奇数或偶数,并替换添加到<tr>
的类。
恕我直言,你想要这样做,100%保证它可以工作(没有浏览器依赖)或者如果你为现代浏览器设计你的应用程序去CSS路线。