【发布时间】:2015-10-13 12:31:18
【问题描述】:
我想在一个循环中运行多个 mysql 查询。也许这是错误的方法,但这就是我问的原因。
例子:
一个用户提交了一个用户输入数组,我想通过它循环执行多个 mysql 查询。如果我对 ID 进行硬编码,它可以工作,但如果我将 ID 设置为 VAR,它就不行。使用 VAR 时,它总是显示最后一个条目的结果。
最好的,蒂姆
if(isset($_POST['list'])){
$list=$_POST['list'];
$list_arr=explode(PHP_EOL, $list);
$list_arr_len=count($list_arr);
for ($i=0; $i < $list_arr_len; $i++) {
echo $list_arr[$i]."<br>";
$result = mysqli_query($con,"SELECT col FROM table where id='$list_arr[$i]'");
$row=mysqli_fetch_array($result,MYSQLI_NUM);
echo $row[0]."<br>";
}
mysqli_close($con);
}
【问题讨论】:
-
不要像那样循环它,而是尝试使用
where id IN(" . implode(',', $list_arr) . " ) ");,你的ID是整数还是字符? -
到目前为止,谢谢,我的用户输入是一个字符串。我已经考虑过使用 IN 但我必须做的不仅仅是从数据库中获取,所以使用循环会很好。