仅显示一位用户的帖子

时间:2021-05-19 19:40:31

标签: php database pdo

你好,我的数据库中有这个表,叫做posts:

<块引用>

1-id 2-poster 3-Title 4-date 5-hour 6-imagem 7-desc

然后我创建了一个帖子:

<块引用>

id - 1 poster - Gary Title- 机器学习的概念是什么? 日期 - 2021 年 5 月 19 日 - 下午 4:32 图像 -https://www.iberdrola.com/wcorp/gc/prod/pt_BR/comunicacion/machine_learning_mult_1_res/machine_learning_746x419.jpg desc-机器学习(英文,machine learning)是一种 自动构建分析模型的数据分析。它 是基于系统思想的人工智能的一个分支 可以从数据中学习,识别模式并以最少的时间做出决策 人为干预。

然后我创建了一个名为 Index.html 的 php 文件,它在 Pdo 中进行编码:

<?php
include_once 'con.php';
?>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
    </head>
    <body>
        <?php
        $result_msg_cont = "SELECT * FROM posts ORDER BY id Desc";
        $resultado_msg_cont = $conn->prepare($result_msg_cont);
        $resultado_msg_cont->execute();
        while ($row_msg_cont = $resultado_msg_cont->fetch(PDO::FETCH_ASSOC)) {
            $post_id =  $row_msg_cont['poster'];
            $Post_Title =  $row_msg_cont['Title'];
              $data =  $row_msg_cont['date'];
                $hora =  $row_msg_cont['hour'];
                  $desc =  $row_msg_cont['desc'];
                  $imagem =  $row_msg_cont['imagem'];
                  echo "<br><p> Posted in " . $data . " at "  . $hora."</p><br>";
echo  "<h2>  $Post_Title</h2><br>";
echo "<img src='" .$imagem.  "' class='img_posts'><br>";
echo " <br><h4 class='posts_desc'> " . $desc . "</h4><br>";
echo "poster: " . $post_id. "<br><br><hr>";
        }
        ?>
    </body>
</html>

结果很棒,因为它确实显示了帖子,但我只想显示一个示例用户的帖子:

<块引用>

我只想显示 Gary 的帖子,以防万一另一个用户有另一个 名称示例 Fred 如果 Fred 发布了该帖子未出现的内容 index.php

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

简答:

您需要在查询中使用 where 子句。

例如

  $result_msg_cont = "SELECT * FROM posts where poster= 'Gary' ORDER BY id Desc";

长答案:

在您的帖子表中添加poster_unique_id 列。

再创建一个名为 users 的数据库表,其中包含 id、unique_id、name、user_status、showhide 等列。为每个海报详细信息的 unique_id 列使用唯一的随机字符串。

现在显示用户(海报)的名称,以及带有 GET 值的链接。

例如

     <a href="index.php?poster=<?php echo $userdata['unique_id'];?>"> <?php echo $userdata['name']:?></a>
 // HERE USER NAME AND UNIQUEID IS FETCHED FROM  users TABLE

然后在上面的当前代码中,添加

 $poster = $_GET['poster'];
 // then use query like

 $result_msg_cont = "SELECT * FROM posts where poster_unique_id = '$poster'  ORDER BY id Desc";

** 本示例中未考虑数据清理等。

我没有得到你的这一行 - 然后我创建了一个名为 Index.html 的 php 文件

是 index.php 还是 index.html ??