[英]MySQLi query returns only one row
此代码仅返回一行,但应返回 2 行。 我在 phpMyAdmin 中尝试了 SQL,它完美地返回了 2 行。 我在这里做错了什么?
$request_list_result = $mysqli->query("
SELECT buddy_requester_id, buddy_reciepient_id, user_id, user_fullname FROM sb_buddies
JOIN sb_users ON buddy_requester_id=user_id
WHERE buddy_status='0' AND buddy_reciepient_id='". get_uid() ."'");
$request_list_row = $request_list_result->fetch_array();
echo $request_list['user_fullname'];
顺便说一下,上面的代码正在通过以下脚本获取 profile.php 的进程:
$index = new Template('views/template/one.php', array(
'subtitle' => 'Dashboard',
'stylesheets' => array('/assets/css/profile.css'),
'scripts' => array('/assets/js/dashboard.js'),
'sidebar' => 'sidebar.php',
'content' => 'views/profile.php',
'errors' => $errors,
'successes' => $successes,
'request_list' => $request_list_row //right here
), true);
mysqli_result::fetch_array
只提取一行作为数组,你正在寻找
mysqli_result::fetch_all
获取所有行。
更多信息在这里
您需要遍历结果(如 TheSmose 所述)
while ($request_list_row = $request_list_result->fetch_array()) {
echo $request_list['user_fullname'];
}
并且您需要将结果数组$request_list
发送到模板而不是$request_list_row
。
改变这个
'request_list' => $request_list_row //right here
对此
'request_list' => $request_list //right here
如果您想要的不仅仅是模板中的user_fullname
(并且您没有mysqli_result::fetch_all
所需的 PHP >= 5.3),那么您将需要在循环中构建您自己的数组。
我不知道您的模板代码期望什么,但您可以尝试
while ($request_list_row = $request_list_result->fetch_array()) {
echo $request_list[] = $request_list_row;
}
您需要遍历结果。 就目前而言,您只获取第一行。
$uid = get_uid();
$sql = "SELECT buddy_requester_id, buddy_reciepient_id, user_id, user_fullname
FROM sb_buddies
JOIN sb_users ON buddy_requester_id=user_id
WHERE buddy_status='0' AND buddy_reciepient_id='{$uid}'";
$request_list_result = $mysqli->query($sql);
while ($request_list_row = $request_list_result->fetch_array()) {
echo $request_list['user_fullname'];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.