我有以下代码:
$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似乎以我不想要的方式重新排序了行。
我正在使用case typea进行测试,当我执行页面时,对var_dump的调用也会被执行--我可以在页面上看到结果。
但是,while语句中的var_dump输出表中按主键排序的行,而不是按我的请求按清除类型排序的行。
如何让mysql_fetch_assoc以我想要的方式输出行?
蒂娅。
发布于 2009-12-10 06:11:12
你在所有案例的结尾都忘了使用break ...
因此,您的default查询总是最终被执行。
https://stackoverflow.com/questions/1877266
复制相似问题