【发布时间】:2013-04-10 06:20:19
【问题描述】:
我有一个页面,用户可以在其中选择多个复选框,然后提交表单,在下一页上,它会显示他们检查的内容以及更多详细信息。但我的查询不起作用。如何将复选框数据传递给 mysql 查询以获取其余数据。
这是我的查询:
$c=$_POST['select'];
$result=mysqli_query($con, 'SELECT * FROM item WHERE item_number IN ("'.implode('","', $c).'")');
echo "<table border='1'>
<tr>
<th>item name</th>
<th>item number</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['item_name'] . "</td>";
echo "<td>" . $row['item_number'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
运行查询时出现此错误:
警告:mysqli_fetch_array() 期望参数 1 为 mysqli_result,给定布尔值
它不返回任何结果,但是如果我回显查询并将其复制粘贴到 mysql 中,我会得到结果,但是当从 PHP 运行时,我只会得到错误。
任何帮助将不胜感激
【问题讨论】:
-
为什么它不起作用?您从数据库或网络服务器得到的错误是什么?
-
什么是 $c?此外,您应该通过 mysqli_real_escape_string() 运行所有值来真正保护您的数据库
-
将 implode('","', $c) 更改为 implode(',', $c)
-
尝试回显 $c 如果你得到一个值,你的问题得到了回答,你会得到一个值吗
-
做一个 var_dump($c);帮助调试 propuses