gpt4 book ai didi

php - 网站查询高级

转载 作者:行者123 更新时间:2023-11-29 21:48:58 25 4
gpt4 key购买 nike

我正在构建类似社交网络的网站。

我制作了 3 个表:userspostsfriends

我如何编写代码来显示我和我 friend 的帖子:用户:ID、电子邮件、用户名、密码、图片

帖子:id、pid、pname、ppost、pimage

好友:id、user1、user2、好友(是或否)

所以我需要检查 user1 是否是 $_SESSION[user] ,然后检查 friend 的每一行是否为"is",然后回显 user1(我) 和我的 friend 的其他用户的每个帖子。

我编写了一些代码,但它仅回显我和我标记为 friend 的第一个用户的帖子,我无法显示我标记为 friend 的其他用户的帖子。

用户:id:1 email:email@email.com,用户名:test,密码:xd,图片:这是链接

用户:id:2,电子邮件:test@email.com,用户名:test2,密码:xd,图片:Link

用户:id:3,电子邮件:test2@email.com,用户名:test3,密码:xd,图片:Link

帖子: id:1 , pid(这是发布者 ID):etc 1,2,3 , pname:发布者名称 , ppost:Text , pimage: 发布者图像:

想象一下我有来自 3 个不同用户的 3 个帖子

friend :id:(auto)1,2,3,4,user1(user1是 session 用户)如果我登录到第一个用户,它将是1,user2(其他用户的id,例如2(test2)), friend (是)

friend :id:(auto)1,2,3,4,user1(user1是 session 用户)如果我登录到第一个用户,它将是1,user2(其他用户的id,例如3(test3)), friend (是)

因此,我需要回显来自用户(我)、另外两个用户以及所有其他有 friend (是)的用户的帖子,并且不显示标记为“否”的用户的帖子。

到目前为止我做了这个:查询:

 `session_start();
$res=mysql_query("SELECT * FROM users WHERE id=".$_SESSION['user']);
$row=mysql_fetch_array($res);
$res2=mysql_query("SELECT * FROM posts WHERE pid=".$_SESSION['user']);
$row2=mysql_fetch_array($res2);

$res3=mysql_query("SELECT * FROM obavijesti");
$row3=mysql_fetch_array($res3);

$res5=mysql_query("SELECT user1, user2 FROM osobe WHERE friends='yes' AND user1='$_SESSION[user]' order by id limit 5000");

$row5=mysql_fetch_array($res5);
$user2=$row5['user2'];
$user1=$_SESSION['user'];

`

PHP 脚本:

<?php $result = mysql_query("SELECT * FROM posts WHERE pid='$user1' OR pid='$user2' order by id desc limit 5000") ?>

<div class="publishcontent">
<link rel="stylesheet" type="text/css" href="testt.css">
<div class="posts">
<article class="post">
<header class="post-header"><span class="post-user-name"><?php echo $row4['pname']; ?></span><span class="post-header-posted">Objavljeno: Danas</span></header>
<div class="post-flex-container">
<aside class="post-user">
<image src="<?php echo $row4['pimage']; ?>" class="post-user-image"></image>
<div class="post-user-status is-online">TEST</div>
<div class="post-user-posts">Broj objava: x</div>
<div class="post-user-joined"><?php if($row['spol'] == "zensko" ) {

echo "Pridružila se";

}
else {
echo "Pridružio se";
} ?> : <?php echo $row['date']; ?></div>
</aside>
<section class="post-content">


<p>

<?php echo htmlspecialchars($row4['ppost']); ?>
</p>
</section>
</div>

</article>

</div>

</div>

<?php endwhile ?>

它只显示我和我标记为 friend 的第一个人的帖子,但不显示第三人的帖子

最佳答案

enter image description here

我会回到你的 mysql 并重构你的数据库模式。您的 Users 表需要与 Friends 表中的 user_id 具有一对多关系。您的 Users 表还需要与 Friends 表中的friend_id 建立一对多关系。 (这允许您存储 friend 的 user_id 和好友的 user_id。)users 表也将与 Posts 表建立一对多关系。然后更改您的 mysql 以使用内连接查询。内连接查询将允许您通过一个查询查询每个表的所有结果。这是一个了解更多信息的链接。 http://www.w3schools.com/sql/sql_join_inner.asp

SELECT users.*, friends.*, posts.* FROM users INNER JOIN friends ON users.id = friends.user_id INNER JOIN posts ON users.id = posts.user_id

您还可以在查询末尾添加 WHERE 子句来获取当前登录用户的相关帖子和好友

关于php - 网站查询高级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33846253/

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