2013-02-16 19 views
0

我已經搜索並嘗試了幾件事情都無濟於事。我在PHP和MySQL中學習了一些類,並試圖在數組結果的行中添加交替顏色。到目前爲止沒有任何工作。我不知道該把它放在哪裏。這是我有的代碼:將交替顏色添加到mysql_fetch_array行結果

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

任何援助將不勝感激。我們只有一個星期的課程,我只是想打點結果。

+1

'mysql_numrows'應該是'mysql_num_rows' ..也是這些' mysql_ *'在PHP 5.5.0以前不推薦使用,不推薦使用php communtiy。更喜歡使用'PDO'或'mysqli'來避免像mysql注入這樣的問題 – mithunsatheesh 2013-02-16 05:22:57

+0

謝謝你告訴我。我將在週三與我們的老師交談,詢問爲什麼我們沒有學習目前的東西。我更願意學習目前正在使用的東西。乾杯,Spud – Spud 2013-02-16 06:18:07

回答

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


    } 
?> 
+0

嗨,當我嘗試上面的代碼時,它返回這個:解析錯誤:語法錯誤,意外的'}'在第55行C:\ xampp \ htdocs \ mydatabase \ cars-sold.php。我做錯了什麼?乾杯 – Spud 2013-02-16 05:51:16

+0

@Spud有一個;其他部分缺失。放一個; in $ bgcolor =「#CC6699」; – ripa 2013-02-16 05:56:07

+0

謝謝你。我對這一切都很陌生,當有人一次一小步地採取行動時,這非常有幫助。我今年60歲,我認爲這很有趣。這是它的工作原理,但我發現我很擅長打破它。歡呼聲,短打 – Spud 2013-02-16 06:02:54

3

使用計數器:

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

然後,添加$類模板(而不是重複背景顏色的東西),並用。即便是和.odd選擇寫CSS。

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

此外,正如mithunsatheesh指出的那樣,mysql_ *函數集非常危險,總體而言只是一個不好的計劃 - 使用PDO來代替。

+0

感謝您的快速響應。我們現在只在瀏覽器中工作,沒有與頁面關聯的CSS。我正在尋找一種PHP方式來做到這一點。歡呼聲,短杆 – Spud 2013-02-16 05:23:36

+0

這非常坦率地是一個可怕的想法 - 以後修復它將會是一個令人難以置信的痛苦。但是,這個想法仍然是一樣的,將$ class改爲$ color,並將$ color設置爲if {}和else {}中的不同顏色,然後將其設置爲背景顏色值。 – 2013-02-16 05:24:37

+0

@Spud:如果你不想使用CSS。 '$ class =「background:#color1」'和'tr'風格的回聲 – mithunsatheesh 2013-02-16 05:29:18

0

您可以使用進水口的理念,打造風格

if($i % 2 == 0) { 

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

的字符串,可代替的bgcolor的行標籤使用

<tr $style> 
0

好,

while ... else對一個不起作用。做到這一點的典型方式是:

$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"; 
} 

THEN:在CSS中,說你有 把你的css文件:

#resultsTable tr:nth-child(even) { background-color:blue; }