【问题标题】:Loading comments from Database从数据库加载评论
【发布时间】:2015-06-15 15:24:07
【问题描述】:

我正在为我的 php 项目开发一个简单的论坛。我有一个 viewpost.php 文件,它显示所有帖子并有一个阅读更多按钮。像这样。

 <?php             
     foreach($rows as $output){
           echo '<div id="dd">';
                    $uid = $output['uid'];
                    $result2 = $conn->prepare("SELECT username FROM users WHERE uid = '$uid'");
                $result2->execute();
                $rows2 = $result2->fetchAll();
                foreach($rows2 as $username_row){
                echo 'POST BY '.$username_row['username'].':';}
                    echo '<h3>Title:'.$output['title'].'</h4>';
                    ?>
  <form action="comments.php" method="post">
      <input type="submit" value="Read more" name="">
  </form>

  <?php
                    echo '</div>';
  }
?>

现在我想在 cmets.php 中加载 post 和 cmets。但我希望 post_id 从数据库中检索帖子、标题和 cmets。我想知道当用户单击 readmore 按钮时如何将 viewpost.php 中的 post_id 传递给 cmets.php。任何帮助对于新手来说都是非常明显的。

【问题讨论】:

  • &lt;input type="hidden" name="post_id" value="$output[id]" /&gt;,基本上。看起来您正在循环中进行嵌套查询。您应该改写一个 JOINed 查询。
  • @MarcB 感谢您提供如此出色的解决方案。您说加入时的真正意思是什么? .你是说先加入这两个表并检索列?
  • 如果您在一个循环中运行两个查询,并且“内部”查询使用来自“外部”查询的数据,那么它们应该使用JOIN 重写为单个查询。那么你正在运行一个查询,而不是 1+n,这是非常低效的。

标签: php mysql


【解决方案1】:

您可以在表单中添加输入

<input type="hidden" value="<?php echo $output['id'] ?>" name="id" />

并在您的 cmets.php 文件中使用 $_POST['id']

或使用 URL,如:

<a href="comments.php?id='<?php echo $output['id'] ; ?>'">

并在您的 cmets.php 文件中使用 $_GET['id']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    相关资源
    最近更新 更多