2014-05-22 107 views
0

我有一個返回這樣的結果的典型的SQL查詢:排序查詢結果與柱頭

$result_acc_man = "SELECT * FROM mgap_management WHERE account_manager_id = '" . $_SESSION['account_manager_id'] . "' ORDER BY mgap_sales_pres"; 
$stmt = $pdo->prepare($result_acc_man); 
$stmt->execute(); 
while($row_acc_man = $stmt->fetch(PDO::FETCH_ASSOC)) 
{ 
$salespres = $row_acc_man['mgap_sales_pres']; 
$regvp = $row_acc_man['mgap_regional_vp']; 
$areasales = $row_acc_man['mgap_area_sales_manager'] 
?> 
<p class="asminfo"><span>Your ASM: <?php echo $areasales;?></span></p> 
<p class="asminfo"><span >Your Regional VP: <?php echo $regvp; ?></span></p> 
<p class="asminfo"><span >Your Sales President: <?php echo $salespres; ?></span></p>   
<?php 
} 
?> 

這裏的列標題

<div id="viewheadaccept"> 
      <span class="namecustaccept1">ACCOUNT NAME </span> 
      <span class="custaccept">ACCOUNT TYPE</span> 
      <span class="recoverycustaccept">OPPORTUNITY SIZE</span> 
</div> 

我需要添加到點擊的能力列名稱和排序數據。除了使用包含排序的不同查詢創建多個鏈接頁面之外,是否有更簡單的方法來完成此操作?

謝謝!

+0

有一些客戶端庫,如'tablesorter',可以使這很容易。 – sgeddes

回答

0

您可以提供一個參數來替代mgap_sales_pres。所以通過urlSamsng發送一個orderBy參數。

爲安全起見,您需要轉義該變量。通常不會推薦這樣做,但由於預準備語句不能將變量注入到ORDER BY子句中,所以這是目前唯一的選擇。

例如mysql_real_escape_char($_GET['orderBy'])

或者,如果你真的偏執,你可以使用switch case語句來檢查驗證列名。