这个代码有一些问题,我试图从我的数据库中获取完整的信息列表,其中user2等于登录用户,状态为“1”。例如,这是我的数据库:
user1: 76, 11, 11, 87
user2: 11, 22, 15, 11
status: 1, 1, 1, 1
这是我的php代码:
<?
$user_id = $_SESSION['userid'];
$data = mysql_query("
SELECT
user1
FROM
friend_requests
WHERE
user2 = '$user_id'
AND
status = '1'
") or die(mysql_error());
$friend_list = mysql_fetch_array( $data );
foreach($friend_list as $friend_list) {
echo $friend_list, '<br>';
}
?>
此代码仅显示数字“76”,因为它是第一个数字,等于数据库中的选择(以“11”身份登录)。但是,相同情况下的数字“87”没有显示?另外,它不会让我显示“状态”?任何想法如何让这个工作?我是这样的新手。谢谢!
P.S我知道MySQL已经过时了,但目前我无能为力。
答案 0 :(得分:0)
试试这个
<?
$user_id = $_SESSION['userid'];
$data = mysql_query("
SELECT
user1,status
FROM
friend_requests
WHERE
user2 = '$user_id'
AND
status = '1'
") or die(mysql_error());
while($friend_list = mysql_fetch_array( $data ))//added this
{
echo $friend_list[¨user1¨].$friend_list[¨status¨].'<br>';
}
?>
答案 1 :(得分:0)
在您的代码中,您只获取一行数据。那是因为mysql_fetch_array
只获取一个&#34;行&#34;来自结果集:
$friend_list = mysql_fetch_array( $data );
这就是为什么你的foreach只获得一行,然后解开它。 如果您想获得完整列表获取数据,请执行以下操作:
while($friend_list = mysql_fetch_array( $data )) {
echo $friend_list, '<br>';
}
在这种情况下,循环将获取行,而不会有要获取的数据。