我有以下代码:
$sortorder = $_GET['sort'];
switch($sortorder)
{
case "modulea":
$result2 = db_query("SELECT * FROM {vanqueue_registrations} WHERE isactive=1 ORDER BY `cleanmodule` ASC");
case "moduled":
$result2 = db_query("SELECT * FROM {vanqueue_registrations} WHERE isactive=1 ORDER BY `cleanmodule` DESC");
case "typea":
$result2 = db_query("SELECT * FROM {vanqueue_registrations} WHERE isactive=1 ORDER BY `cleantype` ASC");
var_dump($result2);
case "typed":
$result2 = db_query("SELECT * FROM {vanqueue_registrations} WHERE isactive=1 ORDER BY `cleantype` DESC");
default:
$result2 = db_query("SELECT * FROM {vanqueue_registrations} WHERE isactive=1");
}
while($result = mysql_fetch_assoc($result2))
{
var_dump($result);
$value .= "<tr><td><center>" . $result['cleanmodule'] . "</center></td><td><center>" . $result['cleantype'] . "</center></td><td><center>" . $directions[$result['direction']] . "</center></td></tr>";
}
如您所见,它需要一个GET变量,并根据其值执行某个查询。 (别担心,这只是测试代码,我显然会在稍后验证输入。)
我的问题:正在执行正确的查询,但mysql_fetch_assoc
似乎是以我不想要的方式重新排序行。
我正在使用案例typea
进行测试,当我执行页面时,执行了对var_dump
的调用 - 我可以在页面上看到结果。因此,交换机确实有效。
但是,var_dump
语句中的while
输出的是表中主键排序的行,而不是按照我的请求输出清晰类型。
如何让mysql_fetch_assoc
以我想要的方式输出行?
TIA。
答案 0 :(得分:6)
您忘记在所有案件结束时使用break
......
因此,您的default
查询总是最终执行。