gpt4 book ai didi

php - 如何在php和MySQL中获取用户的好友数据?

转载 作者:行者123 更新时间:2023-11-29 22:07:23 24 4
gpt4 key购买 nike

我在获取用户的好友数据时遇到问题,如您所知,当您登录 Facebook 并打开您的好友个人资料时,您将能够看到您好友的所有最新更新、照片。就像我想做同样的事情,我有一些数据库表喜欢照片和裁剪(信息表)

所以我想知道如何从两个或更多不同的表中获取数据?

这是我的代码:

if (isset($_GET['username']) === true && empty($_GET['username']) === false) {
$username = $_GET['username'];
if (user_exists($username) === true && friend_exists($username) === true) {
$user_ids = user_id_from_username($username);
$friend_ids = user_id_from_friend($username);
$profile_data = user_data($user_ids, 'user_id', 'username', 'password', 'first', 'last', 'mail', 'mobile', 'gender', 'email_code', 'active');
$friend_photo = user_photos($user_ids,'photo_id','user_id','profile','username');

echo $friend_photo['username'].'<br>';
echo $profile_data['username'];

功能:

function user_id_from_username($username){
$username = sanitize($username);
return mysql_result(mysql_query(" SELECT `user_id` FROM `crop` WHERE `username` = '$username'"), 0, 'user_id');
}
function user_id_from_friend($username){
$username = sanitize($username);
return mysql_result(mysql_query(" SELECT `user_id` FROM `photos` WHERE `username` = '$username'"), 0, 'user_id');
}

function user_exists($username){
global $username;
$username = sanitize($username);
return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `crop` WHERE `username` = '$username'"), 0) == 1) ? true : false;
}
function friend_exists($username){
global $username;
$username = sanitize($username);
return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `photos` WHERE `username` = '$username'"), 0) == 1) ? true : false;
}

如何解决这个问题?任何提示、技术,如果我必须更改代码,请告诉我。

最佳答案

因为您将 user_id 作为用户表的主键,并且您在照片中将 user_id 作为对用户 user_id 的引用。这通常称为一对多关系,这意味着您有一个 user_id 拥有许多照片。因为我不确定你的数据库在 MySQL 中是如何设计和构造的,但我可以假设你可以使用像 LEFT JOIN 这样的东西。

在 MySQL 中可以这样完成:

SELECT * FROM users
LEFT JOIN photos ON
users.user_id = photos.user_id
WHERE users.username = 'theUserName';

此语句将显示属于 user_id = 1 的所有照片。

我们可以在 PHP 中将其写为语句,如下所示:

"SELECT * FROM `users` LEFT JOIN `photos` ON users.user_id = photos.user_id WHERE `username` = '$username'"

现在,如果您想允许向其他用户显示一个用户的照片,您需要通过创建一个名为 users_friends 的新表或类似的东西来建立多对多关系(数据透视表)。

在此表中,您创建两行,一行名为 user_id,另一行名为 friend_user_id,因此每个 user_id 都将允许 friend_user_id > 查看自己的照片。

这就是它的工作原理。

尝试一下,如果这就是您正在寻找的东西,请告诉我。

关于php - 如何在php和MySQL中获取用户的好友数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32022123/

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