我用Google搜索并尝试了几件事都无济于事。我正在使用PHP和MySQL中的一些类,我正在尝试将交替颜色添加到数组结果中的行。到目前为止没有任何工作。我不知道该把它放在哪里。这是我的代码:
//assemble the sql query string to insert a record
$query="SELECT * FROM Vehicles WHERE buyer IS NOT NULL ORDER BY StockID asc";
//open a connection and select the database
$conn=mysql_connect($host, $username, $password);
@mysql_select_db($database, $conn) or die ("Unable to select $database database");
//Execute the sql query
if($result=mysql_query($query, $conn)){
$rows=mysql_numrows($result);
echo"<p>There are $rows cars in the system</p>";
?>
<table border="0" align="center" border="0" cellspacing="0" style="margin:auto; border-spacing:2px 1px; border-collapse:separate; border:ridge 5px; border-color:#669999;">
<tr>
<td style="background-color:#92DEDC">Stock ID</td>
<td style="background-color:#92DEDC">Reg Number</td>
<td style="background-color:#92DEDC">Make</td>
<td style="background-color:#92DEDC">Model</td>
<td style="background-color:#92DEDC">Year</td>
<td style="background-color:#92DEDC">Cost Price</td>
<td style="background-color:#92DEDC">EmpID</td>
<td style="background-color:#92DEDC">Sell Price</td>
<td style="background-color:#92DEDC">Seller</td>
<td style="background-color:#92DEDC">Buyer</td>
<td style="background-color:#92DEDC">Admin Tasks</td>
</tr>
<?php
$i=0;
while($i<$rows){
$recordArray=mysql_fetch_array($result);//fetch and display a record
echo "<tr bgcolor='$bgcolor'>
<td >$recordArray[StockID]</td>
<td>$recordArray[Rego_No]</td>
<td>$recordArray[Make]</td>
<td>$recordArray[Model]</td>
<td>$recordArray[Year]</td>
<td>$recordArray[Cost_Price]</td>
<td>$recordArray[employeeid]</td>
<td>$recordArray[Sale_Price]</td>
<td>$recordArray[emp_name]</td>
<td>$recordArray[Buyer]</td>
<td>
<a href='edit-car.php?StockID=$recordArray[StockID] & emp_name=$recordArray[emp_name]'>Edit</a>
</td>
</tr>";
$i++;
}else{
echo "Something went wrong. MySQL reports <b>", mysql_error(),"</b>";
}
?>
</table>
<?php
mysql_close($conn);
?>
</body></html>
非常感谢任何帮助。我们只有一个星期的课程,我只是想把结果打扮一下。
答案 0 :(得分:3)
使用计数器:
if($i % 2 == 0) {
$class = "even";
}
else {
$class = "odd"
}
然后,将$ class添加到模板中(而不是重复的背景颜色),并使用.even和.odd选择器编写CSS。
(我的PHP有点生疏,但是,这是一般的想法)。
另外,正如mithunsatheesh指出的那样,mysql_ *函数集非常危险,而且整体上只是一个糟糕的计划 - 使用PDO代替。
答案 1 :(得分:0)
您可以使用 Spud 的理念并创建Style
字符串if($i % 2 == 0) {
$style = "style='background-color:white'";
}
else {
$style = "style='background-color:#eee'";
}`
可以代替行标签中的bgcolor
<tr $style>
答案 2 :(得分:0)
<?php
$i=0;
while($recordArray=mysql_fetch_array($result))
{
if($i % 2 == 0)
{
$bgcolor= "#006666";
}
else
{
$bgcolor= "#CC6699";
}
$i++;
echo "<tr bgcolor='$bgcolor'>
<td >$recordArray[StockID]</td>
<td>$recordArray[Rego_No]</td>
<td>$recordArray[Make]</td>
<td>$recordArray[Model]</td>
<td>$recordArray[Year]</td>
<td>$recordArray[Cost_Price]</td>
<td>$recordArray[employeeid]</td>
<td>$recordArray[Sale_Price]</td>
<td>$recordArray[emp_name]</td>
<td>$recordArray[Buyer]</td>
<td>
<a href='edit-car.php?StockID=$recordArray[StockID] & emp_name=$recordArray[emp_name]'>Edit</a>
</td>
</tr>";
}
?>
答案 3 :(得分:0)
那么,
虽然......其他人不适用。这样做的典型方法是:
$dbx=new mysqli('host','user','pw');
$q=$dbx->query"SELECT * FROM whatever";
if ($q) {
while ($f=$q->fetch_assoc()) {
echo "<tr><td>{$f['whatever']}</td></tr>";
}
} else {
echo "Problem";
}
那么:在CSS中,说你有
放入你的css文件:
#resultsTable tr:nth-child(even) { background-color:blue; }