将交替颜色添加到mysql_fetch_array行结果中

时间:2013-02-16 05:15:56

标签: php

我用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>

非常感谢任何帮助。我们只有一个星期的课程,我只是想把结果打扮一下。

4 个答案:

答案 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; }