gpt4 book ai didi

php - 在 while 循环中显示数组值中正确的 user_id 链接时出现问题

转载 作者:行者123 更新时间:2023-11-29 14:54:56 25 4
gpt4 key购买 nike

我正在创建一个社交网站,我希望在 PHP 生成的表格中显示用户的好友。我想在这些缩略图下方显示 friend 的缩略图和其他信息,这样,如果您单击缩略图,它会将您带到该用户的个人资料。

我的代码:

<?php
//code for displaying all your pals
$query_pal_array = "SELECT pal_array FROM users WHERE user_id='$user_id'";
$pal_array_result = mysql_query($query_pal_array, $connections) or die(mysql_error());
$row_pal_array = mysql_fetch_assoc($pal_array_result);

$pal_array = $row_pal_array['pal_array'];

$palList = "";
if($pal_array !="")
{
$palArray = explode(",",$pal_array);
$palCount = count($palArray);
}
else
{
$palCount = "0";
}
//get pal avatars
$query_pal_info = "SELECT users.user_id, user_first_name, user_last_name, username, picture_thumb_url, avatar FROM users LEFT JOIN picture ON
users.user_id = picture.user_id
AND picture.avatar=1 WHERE users.user_id IN ($pal_array)";
$pal_info = mysql_query($query_pal_info , $connections) or die(mysql_error());
$totalRows_pal_info = mysql_num_rows($pal_info );
echo $pal_array;

echo "\n<table>";
$j = 5;
while ($row_pal_info = mysql_fetch_assoc($pal_info))
{
if($j==5) echo "\n\t<tr>";
$thumbnail_user = $row_pal_info['picture_thumb_url'] != '' ? $row_pal_info['picture_thumb_url'] : '../Style/Images/default_avatar.png';
echo "<td width='100' height='100' align='center' valign='middle'><a href = 'user_view.php?user_id2=$pal_array'>
<img src='/NNL/User_Images/$thumbnail_user' border='0'/></a></td>\n";
$j--;
if($j==0) {
echo "\n\t</tr>\n\t<tr>";
$j = 5;
}
}
if($j!=5) echo "\n\t\t<td colspan=\"$j\"></td>\n\t</tr>";
echo "\n</table>";
?>
<table width="500" border="0">
<tr>
<td height="20"><div class="heading_text_18"><?php echo $row_user_info ['username']; ?>'s&nbsp;pals <?php echo $palCount ?></div> </td>
</tr>
<tr>
<td class="interactionLinksDiv" align="right" style="border:none;"><a href="#" onclick="return false"
onmousedown="javascript: toggleInteractContainers('pal_requests');">Pal Requests</a></td>
</tr>
<tr>
<td height="5"></td>
</tr>
</table>

我将 user_id 值存储在数组 $pal_array 中。这些是 friend 的 user_id 号码。当缩略图显示时,它们都链接到数组中的最后一个 user_id。我究竟做错了什么。我刚刚学习 PHP。

最佳答案

如果我不得不猜测,您希望缩略图链接的 URL 读取如下内容:

"user_view.php?user_id2=92"
"user_view.php?user_id2=93"
"user_view.php?user_id2=94"
"user_view.php?user_id2=95"

但据我所知,它们都使用变量 $pal_array 的值,据我所知,它看起来像这样

"92,93,94,95"

这会让你的每一个网址看起来像这样:

"user_view.php?user_id2=92,93,94,95"

修复:因此,要解决眼前的问题,您应该explode() id 列表并单独使用它们,而不是立即使用整个列表。然而,更重要的是正确设置数据库。

解决方案:将您的好友列表存储在单独的表中,而不是用户的字段中。每个用户都有多个好友。每个 friend 都是另一个用户,拥有自己的用户 ID。您需要的是一个单独的表,其唯一的作用是将一个用户的 ID 与另一个用户的 ID 相关联。您的两个表可能如下所示:

Table: User
user_id int;
username varchar;
email varchar;
thumbnail_url varchar;

Table: User_pals
pal_1 int; //user_id of the first user
pal_2 int; //user_id of pal of first user
pals_confirmed bool; //False or 0 until both friends are in agreement

在此设置中,表 User_pals 只是一个将 2 个用户绑定(bind)在一起的大型 2 列列表(还有一个额外的列来指示是否已确认友谊)。要获取给定用户的 friend 列表,您只需执行几个如下查询:

"SELECT pal_2 FROM User_pals WHERE pal_1 = $user_id";
"SELECT pal_1 FROM User_pals WHERE pal_2 = $user_id";

这将为您提供一个很好的 user_ids 列表,这些用户是您的用户的好友。(还有比这更精心设计的表结构,只需要一个查询,但您明白了)。

所以希望这可以帮助您走上正确的道路。更多信息可查看at w3schools. 。除此之外,仅仅通过谷歌搜索关系数据库结构和设计就会非常有用。

关于php - 在 while 循环中显示数组值中正确的 user_id 链接时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4874305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com