php - 显示仅由特定用户在他自己的仪表板上创建的帖子

标签 php mysql

Displaying posts by specific user?我看到的是用于 ruby​​ on rails 的,它对我没有帮助..

我有两个表,users 和 posts。 如果用户发布任何内容,它会显示在他的仪表板上,目前可以正常工作。但我需要的是用户只能查看他的帖子。

请帮忙...

下面是我的代码:

服务器.php

<?php
    // connect to database
    require_once 'database.php';
    // initialize variables
        $note = "";
        $id = 0;
        $edit_state = false;


    // if save button is clicked
    if (isset($_POST['save'])) {
        $note = addslashes($_POST['note']);
        $created_at = date("Y-m-d H:i:s");

    // basic first name validation
    if (empty($note)) {
        $error = true;
        $noteError = "Field cannot be empty.";
    }else {
        // insert records if no error
        $query = "INSERT INTO posts (note, created_at, updated_at) VALUES ('$note', '$created_at', NOW())";
        mysqli_query($dbconn, $query);
        $_SESSION['msg'] = "Saved";
        header('location: ../home.php'); // redirect to home page after inserting
    }
}
?>

这是显示结果的 home.php

<?php
    ob_start();
    session_start();
  error_reporting(E_ALL);
    require_once 'config/database.php';
  include 'config/server.php';

    // if session is not set this will redirect to login page
    if( !isset($_SESSION['user']) ) {
        header("Location: index.php");
        exit;
    }
    // select loggedin users detail
    $res=mysqli_query($dbconn, "SELECT * FROM users WHERE Id=".$_SESSION['user']);
    $userRow=mysqli_fetch_array($res);
?>
 <div class="container" style="margin-top: 100px;">
 <div class="row">
    <div class="col-sm-6">
      <div class="wrap-status100">
        <form method="post" class="login100-form validate-form" action="config/server.php" autocomplete="off">
          <span class="login100-form-title p-b-26">
          <?php if (isset($_SESSION['msg'])): ?>
          <div class="form-group">
          <div class="alert alert-<?php echo $_SESSION['msg']; unset($_SESSION['msg']); ?>">
          <span class="glyphicon glypicon-info-sign"></span>
          </div>
          </div>          
          <?php endif ?>
            What's up <?php echo $userRow['fname']; ?>?
          </span>
            <div class="wrap-input100 validate-input">
            <textarea name="note" class="input100" value="<?php echo $note; ?>"></textarea>
            <span class="focus-input100" data-placeholder="Write note here."></span>
          </div>
          <div class="container-login100-form-btn">
            <div class="wrap-login100-form-btn">
              <div class="login100-form-bgbtn"></div>
                <?php if ($edit_state == false): ?>
              <button name="save" class="login100-form-btn">
                Save
              </button>
      <?php else: ?>
              <button name="update" class="login100-form-btn">
                Update
              </button>
    <?php endif ?> 
            </div>
          </div>
          </div>
        </form>   

    </div>
    <div class="col-sm-6">
        <?php if (isset($_SESSION['msg'])): ?>
    <div class="msg">
      <?php
        echo $_SESSION['msg'];
        unset($_SESSION['msg']);
      ?>
    </div>
  <?php endif ?>
  <table>
    <thead>
      <tr>
        <th>Note</th>
        <th>created</th>
        <th>Updated</th>
        <th colspan="2">Action</th>
      </tr>
    </thead>
    <tbody>
      <?php while ($row = mysqli_fetch_array($results)) { ?>
      <tr>
        <td><?php echo $row['note']; ?></td>
        <td><?php echo $row['created_at']; ?></td>
        <td><?php echo $row['updated_at']; ?></td>
          <td><a class="edit_btn" href="home.php?update=<?php echo $row['id']; ?>">Update</a>
          </td>
        <td>
          <a class="del_btn" href="config/server.php?del=<?php echo $row['id']; ?>">Delete</a>
        </td>
      </tr>
    <?php } ?>
    </tbody>
  </table>
      </div>
  </div>
</div>

最佳答案

您需要在 posts 表中多取一列,即 user_id。您必须存储创建帖子的用户的 ID。

在获取结果时,您可以获取登录用户的 ID。并创建一个类似

的查询
"Select * from posts where user_id=".$_SESSION['user'];

这样您就可以获取该特定用户创建的所有帖子。

希望这对您有所帮助。

谢谢。

关于php - 显示仅由特定用户在他自己的仪表板上创建的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49232748/

相关文章:

php - Laravel 中的异步队列

MySQL - 千位分隔符

mysql - 如何解决 ubuntu 14.04 安装 mysql-server 时未满足的依赖关系

php - 当日期刚刚保存为 UNIX 时间戳时,针对特定日期的 MySQL 过滤器

php - 如何将 Flash 与 Php 集成

php - 如何在PHP OOP中朗读 "->"或 "::"登录?

php - Symfony2 响应内容必须是字符串或对象实现 __toString(), "boolean"given

php - 出现异常您的 FFProbe 版本太旧,不支持 `-help` 选项

php - 根据所选标题从 CSV 中提取重复记录

mysql - 如何按日期和 ID 删除 MySQL 表上的重复项?