2012-06-27 33 views
0

我一直在嘗試一段時間來獲得我的php結果的動態排序,但對於某些原因,它只是不會做任何事情,如果我嘗試更改下拉列表中的排序字段,什麼也沒有發生,我無法弄清楚。根據所選的排序動態更改結果

這裏是PHP代碼

 $sortorder = "ASC"; 
$sortfield = "addon_name"; 

if(isset($_GET["sortorder"])) { 
$sortorder = $_GET["sortorder"]; 
} 
if(isset($_GET["sortfield"])) { 
$sortfield= $_GET["sortfield"]; 
} 

     $small_statement = "`addons` WHERE addon_size='small' ORDER BY $sortfield $sortorder"; 

這裏是html代碼

<select name="sortorder" onChange="MM_jumpMenu('parent',this,0)"> 
<option value="?sortorder=ASC">Ascending</option> 
<option value="?sortorder=DSC">Descending</option> 
</select> 

<select name="sortfield" onChange="MM_jumpMenu('parent',this,0)"> 
<option value="?sortfield=addon_name">Name</option> 
<option value="?sortfield=addon_rank">Rank</option> 
</select></div><!---end browse_header---> 
    <div id="small" class="tab_content"> 

    <?php 
      $browse_small_query = mysql_query("SELECT * FROM {$small_statement} LIMIT {$startpoint_small} , {$limit}"); 

      while($row_small = mysql_fetch_assoc($browse_small_query)) : ?> 
      <?php extract($row_small);?> 

       <div class="addon_wrapper" onclick="location.href='addon_detail.php?eid=<?php print "$estate_id";?> &aid=<?php print "$addon_id";?>';"><div class="addon_header"><?php print "$addon_name";?><?php print "$addon_id";?></div><!---end addon_wrapper---><div class="addon_browse_image"></div><!---end addon_browse_image---></div><!---end addon_wrapper---> 
     <?php endwhile ?> 

感謝您的任何和所有幫助

回答

0

<option>■找錯值。您不需要變量的名稱,因爲這暗示了<select name="XXX"。值應爲

<option value="ASC">Ascending</option> 
<option value="DESC">Descending</option> 

與其他兩個類似。

您也可以通過檢查$_GET中的值來自己調試。

最後,此代碼易受SQL注入攻擊,因爲任何人都可以使用他們想要的任何值爲這兩個參數提交請求。您應該使用白名單或使用standard defensive approaches之一來保護自己。

+0

好的,我現在要檢查$ _GET,我忘記了這一點,我將DSC更改爲DESC,但它沒有做任何其他事情,雖然 – Arken

+0

不錯,我擺脫了額外的東西,這不需要像你說的價值觀,但它仍然沒有什麼,當我試圖改變他們 – Arken

+0

它說什麼都沒有進入$ _GET,即使當我選擇另一個選項 – Arken

相關問題