2011-12-06 34 views
-2

基本上我工作的一個網站存儲和與它有問題。網上似乎沒有什麼我需要弄清楚。我有第一個if else語句工作正常,第二個工作不正常。這裏是編碼告訴我什麼是錯的,或者我可以做什麼不同。

<?php 
$adsql = mysql_query("SELECT * FROM store_items WHERE userid='$id2'"); 
while($adrow = mysql_fetch_array($adsql)){ 
    $type = $adrow['type'];(this is int) 
           $item = $adrow['id']; 
    if ($type == 1) { 
     $item1 = "<center>You have bought this already</center>"; 
    } else { 
     $item1 = This is where item1 is bought 

      } 
    if ($type == 2) { 
     $item2 = "<center>You have bought this already</center>"; 
    } else { 
     $item2 = This is where item2 is bought 
      </table> 
      "; 
       } 
     } 
    ?> 

它檢索的最後一個數字不是所有的數字,作爲回報只顯示1 if else語句而不是兩個。任何想法是什麼是錯誤的讚賞。

+1

歡迎堆棧溢出!你如何清理'$ id2'變量?我相信這個腳本容易受到[SQL注入](http://en.wikipedia.org/wiki/SQL_injection)漏洞的攻擊,因爲你沒有顯示任何對$ id2變量的消毒。請使用[PHP Prepared Statements](http://php.net/manual/en/pdo.prepared-statements.php)來防止這些漏洞。謝謝。 – sarnold

+0

[示例代碼](http://sscce.org/)應該是完整的,簡潔的,代表性的和*正確的*(不含語法錯誤)。另外,選擇並使用[縮進樣式](http://en.wikipedia.org/wiki/Indent_style)讓您的代碼可讀。一個好的代碼編輯器/ IDE可以自動縮進代碼,這會使某些類型的錯誤變得明顯。 – outis

+0

mysql擴展已過時,正在棄用。新代碼應該使用mysqli或PDO,它們都具有重要的優點,例如支持預處理語句。 – outis

回答

1

線條:

$item1 = This is where item1 is bought 

$item2 = This is where item2 is bought 

應該是:

$item1 = "This is where item1 is bought"; 

$item2 = "This is where item2 is bought"; 

沒有引號,語句在語法上不正確。

+0

我懷疑OP已經消除了代碼,並用恰好不是標準的佔位符文本替換了它。如果那是在實際的腳本中,它會產生一個分析錯誤,根本不運行。 –

+0

@JaredFarrish,我認爲你是對的。 –

+0

它和$ ID2是會話 – user1079456