2012-04-04 84 views
3
$banana=0; 
$view = mysql_query('SELECT ......') or die ('Encountered an error.') ; 
while($rows3=mysql_fetch_array($view)) 
{ 
    $total_price2=$rows3['qty']*$rows3['number']; 
    $banana = $banana + 1; 

    if ($total_price2!=0) 
    { 
     if ($banana %2 ==0) 
     { 
      echo "<tr class=\"alt\">"; 
     } 
     else 
     { 
      echo "<tr>"; 
     } 
     echo "<td>".$rows3['member']."</td>"; 
     echo "<td>".$rows3['payment']."</td>"; 
     echo "<td>$".number_format($total_price2,2)."</td>";     
    } 

    echo "</tr>"; 
} 

問題:PHP - 「如果」 在 「而」 問題替代HTML錶行顏色

  • 的 「香蕉」 交替的表格行的顏色(類= 「ALT」)通過使用模數(%)來檢查香蕉是否是奇數。
  • 不工作,我看到瀏覽器正在自動關閉<tr>標籤。

如:

<tr><td>person</td><td>data</td><td>$10.00</td></tr>

<tr class="alt"></tr>(重複以這種方式)

UPDATE

我已經發現,重申banana總是返回奇數:1,3,5等

MySQL是不正確運行

SELECT table1.member, table1.paid, table1.payment,table2.qty,table3.number FROM table1,table2,table3 WHERE table1.member = table2.member AND table1.payment="fruit"

這是給我的錯誤數據,像這樣:

  1. PERSON1 $ 10.00
  2. PERSON1 $ 0.00包裝
  3. PERSON2 $ 10.00
  4. person2 $ 0.00

+0

代碼似乎是正確的。還有一些其他錯誤。 – hjpotter92 2012-04-04 16:26:36

+0

同意;應該絕對有效。但是,嘗試這樣做而不是IF語句:printf(「,($ banana%2?'':'alt')); – pp19dd 2012-04-04 16:28:18

+0

是的,我很困惑。 CSS表格顏色行也是一樣的。 – leechyeah 2012-04-04 16:29:08

回答

1

這是行不通的。您只打開表格行,如果$total_price2!=0。看來你應該只輸出該IF塊內關閉的</tr>標籤。

試試這個:

<?php 
$banana=0; 
$view = mysql_query('SELECT ......') or die ('Encountered an error.') ; 
while($rows3=mysql_fetch_array($view)) 
{ 
    $total_price2=$rows3['qty']*$rows3['number']; 

    if (!$total_price2) 
     continue; 

    $banana = $banana + 1; 

    if ($banana %2 ==0) 
    { 
     echo "<tr class=\"alt\">"; 
    } 
    else 
    { 
     echo "<tr>"; 
    } 

    echo "<td>".$rows3['member']."</td>"; 
    echo "<td>".$rows3['payment']."</td>"; 
    echo "<td>$".number_format($total_price2,2)."</td>"; 

    echo "</tr>"; 
} 
+0

謝謝,這工作。雖然我該如何修復我的查詢?它的結果每個名稱兩次,價格10或0.見上述更新 – leechyeah 2012-04-06 03:14:59

+0

也是什麼「!」在'if(!$ total_price2)'中表示意思。爲什麼這個if語句沒有括號? – leechyeah 2012-04-06 03:19:03

+0

我不知道你的查詢是什麼......請把它加到你的問題中 – landons 2012-04-06 03:33:27

3

先嚐試這樣做了調試:

echo "<tr class=\"alt\">&nbsp;";

我的猜測是,你有沒有包含在你的< TR>和被壓扁爲0像素高的數據通過你的瀏覽器。

編輯:我不完全確定給你的課程< tr>將根據某些瀏覽器DOM解析過濾到< td>。每當我做一條斑馬線時,我就會把這個班級分配給< td>。雖然我不是任何標準的設計師。 :)

幽默我,試試這個,請:

$banana=0; 
$view = mysql_query('SELECT ......') or die ('Encountered an error.') ; 
while($rows3=mysql_fetch_array($view)) 
{ 
    $total_price2=$rows3['qty']*$rows3['number']; 
    $banana++; 
    if ($banana % 2 == 0) { 
     $td_class = "alt"; 
    } else { 
     $td_class = ""; 
    } 
    echo "<tr>"; 
    if ($total_price2!=0) {  
     echo "<td class='{$td_class}'>".$rows3['member']."</td>"; 
     echo "<td class='{$td_class}'>".$rows3['payment']."</td>"; 
     echo "<td class='{$td_class}'>$".number_format($total_price2,2)."</td>";        
    } 
    echo "</tr>"; 
} 
+0

不好意思。 – leechyeah 2012-04-04 16:32:31

+0

@Lee看到我的更新,只是幽默我,如果你會:) – Blake 2012-04-04 16:41:36

+0

thx爲您的幫助,我會在早上第一次嘗試。 3.15在這裏xx zzzzzzz – leechyeah 2012-04-04 17:13:37

3

如果一切都失敗了,你可以只使用CSS:

tr {background-color: blue;} 
tr:nth-of-type(2n) {background-color: red;}