2013-04-04 91 views
0

我想在php中为动态行应用css类。但没有发生。这里是我的代码 请有人建议我在哪里我错了。我已经为行申报了一个计数器,但没有得到增加计数的地方。为动态行应用样式表类

<table width='100%' border='0' cellspacing='0' cellpadding='2'> 
      <tr> 
      <td class='tddash'>10 latest unpaid customer invoices</td> 
      </tr> 
      <tr> 
      <td valign='top'>"; 

      $SQL = "SELECT salesorders.orderno, 
         debtorsmaster.name, 
         custbranch.brname, 
         salesorders.customerref, 
         salesorders.orddate, 
         salesorders.deliverydate, 
         salesorders.deliverto, 
         salesorders.printedpackingslip, 
         salesorders.poplaced, 
         SUM(salesorderdetails.unitprice*salesorderdetails.quantity*(1-salesorderdetails.discountpercent)/currencies.rate) AS ordervalue 
        FROM salesorders INNER JOIN salesorderdetails 
         ON salesorders.orderno = salesorderdetails.orderno 
         INNER JOIN debtorsmaster 
         ON salesorders.debtorno = debtorsmaster.debtorno 
         INNER JOIN custbranch 
         ON debtorsmaster.debtorno = custbranch.debtorno 
         AND salesorders.branchcode = custbranch.branchcode 
         INNER JOIN currencies 
         ON debtorsmaster.currcode = currencies.currabrev 
        WHERE salesorderdetails.completed=0 
        GROUP BY salesorders.orderno, 
         debtorsmaster.name, 
         custbranch.brname, 
         salesorders.customerref, 
         salesorders.orddate, 
         salesorders.deliverydate, 
         salesorders.deliverto, 
         salesorders.printedpackingslip, 
         salesorders.poplaced 
        ORDER BY salesorders.orderno"; 
        $SalesOrdersResult1 = DB_query($SQL,$db); 


        echo "<table width='100%' celpadding='2' class='selection'><tbody>"; 
          $TableHeader = "<tr><th> Customer </th><th>Order Date</th><th>Delivery Date</th><th>Delivery To</th><th>Order Total</th></tr> "; 

          $k = 0; 





        while ($row = DB_fetch_array($SalesOrdersResult1)) 

         { 

if ($k == 1){ 
       echo '<tr class="EvenTableRows">'; 
       $k = 0; 
      } else { 
       echo '<tr class="OddTableRows">'; 
       $k = 1; 
      } 
          $FormatedOrderValue1 = locale_number_format($row['ordervalue'],$row['currdecimalplaces']); 
          //$TotalOrderValue = $array_sum($FormatedOrderValue1); 
          //$FormatedOrderValue1 = locale_number_format($myrow['ordervalue'],$_SESSION['CompanyRecord']['decimalplaces']); 
          $FormatedOrderDate = ConvertSQLDate($row['orddate']); 
          $FormatedDelDate = ConvertSQLDate($row['deliverydate']); 

          echo " <td> " . $row['name'] . " </td>"; 
          echo " <td>$FormatedOrderDate</td><td>$FormatedDelDate</td><td> " . $row['deliverto'] . " </td><td>$FormatedOrderValue1</td> "; 

      } 
         //echo "<tr><td colspan='3'>Total</td><td colspan='2'>$TotalOrderValue</td></tr></tbody>"; 
         //echo $array_sum($FormatedOrderValue1); 
      echo "</table>"; 

      echo"</td> 
      </tr> 
     </table> 

回答

1

试着把它放在while循环中。

if ($k == 1){ 
      echo '<tr class="EvenTableRows">'; 
      $k = 0; 
     } else { 
      echo '<tr class="OddTableRows">'; 
      $k = 1; 
     } 
+1

echo $ k ++%2 == 0?'':''; – Kieran 2013-04-04 06:12:40

+0

@Kaii:没有。它没有发生。我试过:( – user2178637 2013-04-04 06:16:52

+0

你能查看它的页面源代码并将其复制到pastebin中以便我们看到最终结果吗? – 2013-04-04 06:18:13

1

如果你想装饰你的表,你可以使用CSS来使用它。不要使用服务器端语言

tr:nth-child(even) {background: #CCC} 
tr:nth-child(odd) {background: #FFF} 
0

三个问题与你的码(4如果算上您有外面应该被移动的PHP内被echo'ed HTML了大量的事实)

1)你没有$ k ++;增加你的$ k值

2)你需要删除$ row ['name']行中的“tr”。 3)你需要移动整个if($ k)block while()循环的INSIDE。