我有一个典型的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 :(得分:0)
您可以提供替换mgap_sales_pres
的参数。因此,请通过url stirng发送orderBy
参数。
为了安全起见,您需要转义变量。通常情况下不建议这样做,但由于准备好的语句不能将变量注入ORDER BY子句,因此它是目前唯一的选择。
例如mysql_real_escape_char($_GET['orderBy'])
或者,如果你真的是偏执狂,你可以使用switch case语句来检查验证列名。