2013-08-04 61 views
-1

我試圖改變印刷結果在兩列中基於是否從SQL查詢的列的表是一個0或1更改輸出基於SQL查詢結果

我做的回聲$狀態,它會列出正確的值列表,但它位於我的表格之上。我是否正確地解決這個問題,將它放到我的表格行中?

我的其餘數據正確填充表格,它只是這兩列。我目前已將該部分註釋掉了,所以輸出到表中的值分別爲0或1。如果他們要正確輸出,我也會在特定欄旁邊註明變量。

任何幫助將不勝感激。

這裏就是我想要做的轉換代碼的部分:

if ($strAdjIncrease == '0') { 
    $AdjIncDec == 'Decrease'; 
} elseif ($strAdjIncrease == '1') { 
    $AdjIncDec == 'Increase'; 
} else { 
    $AdjIncDec == 'Unknown'; 
} 
if ($strAdjStatus == '0') { 
    $Status =='Open'; 
} elseif ($strAdjStatus == '1') { 
    $Status =='Closed'; 
} else { 
    $Status =='Void'; 
} 

這是我的全部表編號:

if (odbc_num_rows($rsIaL) == 0) { 
     echo "<center>"; 
     echo "<b>We're Sorry, No Records Returned.</b><br>\n"; 
     echo "</center>"; 
    } else { 
     echo "<p align='center'>"; 
     echo "<font face='Arial' size='4'><b>Last 31 Days Only</b></font>"; 
     echo "</p>\n"; 
     echo "<table border='1' align='center' cellpadding='2' style='border-collapse: collapse; font-size: 12px; font-weight: bold'>\n"; 
     echo "<thead>"; 
     echo "<tr>"; 
     echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>#</b></font></th>"; 
     echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>Log ID</b></font></th>"; 
     echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>Reason</b></font></th>"; 
     echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>Inc/Dec</b></font></th>"; 
     echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>Status</b></font></th>"; 
     echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>Ref No</b></font></th>"; 
     echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>Tot Cost</b></font></th>"; 
     echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>Tot Retail</b></font></th>"; 
     echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>Start</b></font></th>"; 
     echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>End</b></font></th>"; 
     echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>User</b></font></th>"; 
     echo "</tr>"; 
     echo "</thead>"; 
     echo "<tbody>"; 
     $counter = 1; 

     while ($row = odbc_fetch_array($rsIaL)) { 
      $strAdjID  = trim(odbc_result($rsIaL, "AdjID")); 
      $strReaDesc  = trim(odbc_result($rsIaL, "ReaDesc")); 
      $strAdjStatus = trim(odbc_result($rsIaL, "AdjStatus")); 
      $strAdjRefNo  = trim(odbc_result($rsIaL, "AdjRefNo")); 
      $strAdjStTS  = trim(odbc_result($rsIaL, "AdjStTS")); 
      $strAdjEndTS  = trim(odbc_result($rsIaL, "AdjEndTS")); 
      $strAdjUID  = trim(odbc_result($rsIaL, "AdjUID")); 
      $strAdjTotCost = trim(odbc_result($rsIaL, "AdjTotCost")); 
      $strAdjTotRetail = trim(odbc_result($rsIaL, "AdjTotRetail")); 
      $strAdjIncrease = trim(odbc_result($rsIaL, "AdjIncrease")); 

      if ($bgcolor == '#ffffff') { 
       $bgcolor = '#dddddd'; 
      } else { 
       $bgcolor = '#ffffff'; 
      } 
      /* 
      I can't get this if/else portion to work and output correctly to the table! 
      I may be doing it incorrectly though 

      if ($strAdjIncrease == '0') { 
       $AdjIncDec == 'Decrease'; 
      } elseif ($strAdjIncrease == '1') { 
       $AdjIncDec == 'Increase'; 
      } else { 
       $AdjIncDec == 'Unknown'; 
      } 
      if ($strAdjStatus == '0') { 
       $Status =='Open'; 
      } elseif ($strAdjStatus == '1') { 
       $Status =='Closed'; 
      } else { 
       $Status =='Void'; 
      } 
      */ 

      echo "<tr>\n"; 
      echo "<td bgcolor = '$bgcolor' align=center>$counter</td>\n"; 
      echo "<td bgcolor = '$bgcolor' align=center> <a href='Inventory_Adjustments_Detail.asp?log_id=$strAdjID&store_id=$storeID'>$strAdjID</a></td>\n"; 
      echo "<td bgcolor = '$bgcolor' align=left>$strReaDesc</td>\n"; 
      echo "<td bgcolor = '$bgcolor' align=left>$strAdjIncrease</td>\n"; #$AdjIncDec <-if/else variable 
      echo "<td bgcolor = '$bgcolor' align=left>".$strAdjStatus."</td>\n"; #$Status <- if/else variable 
      echo "<td bgcolor = '$bgcolor' align=left>$strAdjRefNo</td>\n"; 
      echo "<td bgcolor = '$bgcolor' align=right>$" . number_format($strAdjTotCost, 2) . "</td>\n"; 
      echo "<td bgcolor = '$bgcolor' align=right>$" . number_format($strAdjTotRetail, 2) . "</td>\n"; 
      echo "<td bgcolor = '$bgcolor' align=center>" . date('n-j-Y h:i:s A', strtotime($strAdjStTS)) . "</td>\n"; 
      echo "<td bgcolor = '$bgcolor' align=center>" . date('n-j-Y h:i:s A', strtotime($strAdjEndTS)) . "</td>\n"; 
      echo "<td bgcolor = '$bgcolor' align=left>$strAdjUID</td>\n"; 
      echo "</tr>"; 
      $counter++; 
     } 

     echo "</tbody>\n"; 
     echo "</table><br>\n"; 

    } 

回答

1

說實話,我不明白你的代碼很好......但這裏有一些想法:

  1. 嘗試回顯你的變量$strAdjIncrease a nd $strAdjStatus在if/else語句之前測試它們具有的值 - 調試。也許錯誤在某個地方。

  2. 我不知道這是一個錯字或你想做些什麼,但我相信
    $AdjIncDec == 'Increase';(和其他變量),你的if/else語句不應該有雙等於內==但單= !?

  3. 嘗試===而不是==在您的if/else語句中。

+0

我知道這個問題不是關於樣式,也許這不是你自己的代碼,你正在那裏工作,但它更乾淨,只需關閉PHP標籤寫一些HTML,並重新打開PHP標籤迴盪噸行。例如'...?>

這裏的一些html並輸出一個<?php echo $ variable; ?>和更多html有

<?php ...'。有很多(不推薦)的HTML樣式,你應該實際使用CSS ...沒有冒犯,只是一些建議:) – Leo

+0

是的,它不是我的代碼。這是我工作中的一些東西,我試圖修復/工作。該代碼是針對內部員工的內部網,並且該頭人不關心員工的CSS /格式。因爲這一切都只是他們正在看的報道。這只是一個包含標題和報告的頁面。他說,一旦一切正常,那麼我們會擔心使代碼看起來很好/使用CSS格式。 – James

+0

我在您提出的If/else語句中進行了更改,現在它正在運行。非常感謝你!正如你所看到的,我對PHP相當陌生,而且我仍然每天都在學習新的東西。例如,我不知道你可以使用===。我認爲這只是==或=。 再次感謝您的幫助。 – James