【发布时间】:2013-07-17 15:41:19
【问题描述】:
以下代码显示表格中的数据,然后根据两个组合框的结果对其进行过滤。提交表单后,我可以按 ID 对结果进行排序,但不能在初始加载时(所有内容都列出)。我试过$sql = "SELECT * FROM Places ORDER BY ID";,它在列表加载时有效,但在提交表单时返回错误。希望这是有道理的。有任何想法吗?谢谢!
// Default query
$sql = "SELECT * FROM Places";
// check if form was submitted
if (isset($_POST['area'])) {
$connector = 'where';
if ($_POST['area'] != 'All') {
$sql .= " where Area = '".$_POST['area']."' ORDER BY ID";
$connector = 'and';
}
if ($_POST['theme'] != 'All') {
$sql .= " $connector Theme = '".$_POST['theme']."' OR Theme2 = '".$_POST['theme']."'
ORDER BY ID";
}
}
【问题讨论】:
-
ORDER BY方法是正确的,但是您需要告诉我们更多关于“提交表单时出错”的信息。请向我们展示您的表单以及提交的代码。 -
您好,错误是'mysql_fetch_array() 期望参数 1 是资源,给定布尔值...'
-
-
您正在生成无效的 sql,导致查询失败。可能是该区域中悬空的
and!=所有代码部分。你也有大开的SQL injection attack 漏洞,所以享受你的服务器 pwn3d。 -
对不起,我没有明白这段代码实际上是表单发布到的那个。您生成的查询中可能存在 SQL 语法错误。请在将
$sql发送到 MySQL 之前向我们展示其内容。
标签: php sql-order-by