我在尝试完成这项工作时遇到了一些麻烦。问题是:
我有一个看起来像
的数组wants_arr_flat
(
[0] => booze
[1] => nudes
[2] =>房间
我希望我的foreach循环遍历这些值,生成不同的SQL语句,然后将该SQL语句的结果保存到另一个数组。我现在尝试使用的代码就是这个。
foreach ( $wants_arr_flat as $value ) {
$sql = "SELECT * FROM offers WHERE user_id != $_SESSION[user_id] AND offer='$value'";
$result=$conn->query($sql);
$want_match_arr = mysqli_fetch_row($result);
echo '<pre>'; print_r($want_match_arr); echo '</pre>'; //testing echo
显然这只是在每次迭代时覆盖最后一个数组,所以我最终只在数组中得到一个结果。
答案 0 :(得分:3)
而不是
$want_match_arr = mysqli_fetch_row($result);
使用
$want_match_arr[] = mysqli_fetch_row($result);
答案 1 :(得分:0)
如果从SQL获得多行,那么这样做会更好。
$want_match_arr = [];
foreach ( $wants_arr_flat as $value ) {
$sql = "SELECT * FROM offers WHERE user_id != $_SESSION[user_id] AND offer='$value'";
$result=$conn->query($sql);
while ($row = mysql_fetch_assoc($result)) {
$want_match_arr[] = $row;
}
}
echo '<pre>'; print_r($want_match_arr); echo '</pre>'; //testing echo