我有以下代码:mysql_fetch_assoc返回结果在错误的顺序
$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
的调用 - 我可以在页面上看到结果。所以交换机肯定工作。
但是,while
语句中的var_dump
正在输出由表中的主键排序的行,而不是按照我的请求cleantype输出。
我该如何让mysql_fetch_assoc
以我想要的方式输出行?
TIA。
请格式化您的代码 – 2009-12-09 22:10:16
完成,对不起 - 第一次看起来不错 – benjy 2009-12-09 22:10:55