0

我用谷歌搜索并尝试了几件事都无济于事。我正在学习 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>

任何帮助将不胜感激。我们只有一周的课程,我只是想稍微修饰一下结果。

4

4 回答 4

3

使用计数器:

if($i % 2 == 0) {
  $class = "even";
}
else {
  $class = "odd"
}

然后,将该 $class 添加到您的模板中(而不是重复的背景颜色),并使用 .even 和 .odd 选择器编写 CSS。

(我的 PHP 有点生疏,但是,这是一般的想法)。

此外,正如 mithunsatheesh 所指出的, mysql_* 函数集非常危险,总的来说只是一个糟糕的使用计划——改用 PDO。

于 2013-02-16T05:18:34.620 回答
0

您可以使用 The Idea of​​ Spud并创建 Style 字符串

if($i % 2 == 0) {

$style = "style='background-color:white'";
}
else {
$style = "style='background-color:#eee'";
}`

并且可以在行标签中代替 bgcolor

<tr $style>
于 2013-02-16T05:30:03.440 回答
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>";


   }
 ?>  
于 2013-02-16T05:32:04.873 回答
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 中,假设你有 Put 在你的 css 文件中:

#resultsTable tr:nth-child(even) { background-color:blue; }
于 2013-02-16T05:43:49.610 回答