2011-10-15 65 views
0

我正在寫一個代碼,其中我有一個名爲「grandtotal」的值的變量,我想將這個值與我的數據庫中的值進行比較,並獲取列下相應的結果數據庫中的「百分比」。 m使用以下參數提供對db m的查詢:表名稱是範圍,並且這兩個屬性都聲明爲varchar。在PHP代碼中的SQL查詢

INSERT INTO `range` (`Range`, `Percentage`) VALUES 
('D', '25'), 
('C', '35'), 
('B', '40'), 
('A', '50'); 

我的代碼塊是:

if($grandtotal >= 70 && $grandtotal <= 79) 
{ 
    $sql = ("SELECT Percentage FROM range WHERE Range='D'"); 
    if (!mysql_query($sql,$con)) 
     { 
      die('Error: ' . mysql_error()); 
     } 
    $result=mysql_query($sql); 
    while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
    { 
     $rate = $row['Percentage']; 
    } 
} 
elseif($grandtotal >= 80 && $grandtotal <= 89) 
{ 

    $sql = ("SELECT Percentage FROM range WHERE Range='C'"); 
    if (!mysql_query($sql,$con)) 
      { 
       die('Error: ' . mysql_error()); 
      } 
    $result=mysql_query($sql); 
    while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
    { 
     $rate = $row['Percentage']; 
    } 
} 

elseif($grandtotal >= 90 && $grandtotal <= 95) 
{ 

    $sql = ("SELECT Percentage FROM range WHERE Range='B'"); 
    if (!mysql_query($sql,$con)) 
      { 
       die('Error: ' . mysql_error()); 
      } 
    $result=mysql_query($sql); 

    while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
    { 
     $rate = $row['Percentage']; 
    } 
} 

elseif($grandtotal >= 96 && $grandtotal <= 100) 
{ 

    $sql = ("SELECT Percentage FROM range WHERE Range='A'"); 
      if (!mysql_query($sql,$con)) 
      { 
       die('Error: ' . mysql_error()); 
      } 
    $result=mysql_query($sql); 
    while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
    { 
     $rate = $row['Percentage']; 
    } 
} 

,我發現了以下錯誤:

錯誤:你在你的SQL語法錯誤;請檢查與您的MySQL服務器版本對應的手冊,以便在第1行的'範圍WHERE Range ='C''處使用正確的語法。

謝謝你。

+0

看起來像一個問題與數據庫。請在windows @ stivlo上顯示錶結構 –

+0

...我已經寫出了範圍表的結構查詢...可以告訴我還需要提供什麼?@topener – ZoeHime

回答

2

範圍是保留字,應該是反引號(http://dev.mysql.com/doc/refman/5.1/en/partitioning-range.html)

$sql = ("SELECT Percentage FROM `range` WHERE `Range`='D'"); 
+0

非常感謝你:) @ konsolenfreddy – ZoeHime