仅显示相关帖子

时间:2013-10-21 12:57:14

标签: php mysql comments

我有一个用php和mysql制作的网站。

这是我创建的播客网站。

主页上有一个播客列表,一旦点击它,它就会显示episode.php?id =后面跟着该播客的mysql中列出的ID。

在剧集页面的底部,我添加了一个评论框。

我可以使用以下方法显示保存在mysql中的注释:

<?php class feedback {
public function fetch_all(){
    global $pdo;
      $query = $pdo->prepare("SELECT * FROM comments");
      $query->execute();
return $query->fetchAll();
              } }
$feedback = new feedback;
$articles = $feedback->fetch_all();
?>

<html>
<body>

    <?php foreach ($articles as $feedback) { ?>

<div class="comment" align="center">Name: <font size="3" color="grey"><?php echo $feedback['name']; ?></font> &nbsp;&nbsp; Email: <font size="3" color="grey">Hidden</font>
<br />
<font size="5" color="red"><div align="left"><?php echo $feedback['post']; ?></font></div></div>
<br><div class="divider2"> </div><br>
<?php } ?>
</html>
</body>

这将显示mysql的comments字段中列出的所有注释。 每个评论都有一个&#34;演员&#34;选项卡,显示播客的ID。

如何才能反映正在浏览的网页?

例如,

如果我正在查看episode.php?id = 1,那么我希望使用&#34; cast&#34;标签&#34; 1&#34;要显示而不是&#34;演员&#34;选项卡&#34; 2&#34;。对于episode.php也是如此?id = 2。等等!

有人可以指导我如何做到这一点吗?

谢谢你。

千电子伏

2 个答案:

答案 0 :(得分:0)

所以在尝试了TimoDörsching的建议后,我尝试了一下这个问题。

我点击撤消将其恢复到原来的帖子并更改了此内容:

<?php foreach ($articles as $feedback) { ?>

<div class="comment" align="center">Name: <font size="3" color="grey"><?php echo $feedback['name']; ?></font> &nbsp;&nbsp; Email: <font size="3" color="grey">Hidden</font>
<br />
<font size="5" color="red"><div align="left"><?php echo $feedback['post']; ?></font></div></div>
<br><div class="divider2"> </div><br>
<?php } ?>

到此:

    <?php foreach ($articles as $feedback) {
if ($feedback['cast'] === $_GET['id']) { ?>

<div class="comment" align="center">Name: <font size="3" color="grey"><?php echo $feedback['name']; ?></font> &nbsp;&nbsp; Email: <font size="3" color="grey">Hidden</font>
<br />
<font size="5" color="red"><div align="left"><?php echo $feedback['post']; ?></font></div></div>
<br><div class="divider2"> </div><br>
<?php } } ?>

这完美地完成了这项工作。

答案 1 :(得分:-1)

也许你必须过滤$ _GET ['id']&amp; $ cast ....但这很容易谷歌如何做到这一点...... 看看:How can I prevent SQL injection in PHP?

$cast = $_GET['id'];
public function fetch_all($cast){
    global $pdo;
      $query = $pdo->prepare("SELECT * FROM comments WHERE cast/id/... = ".$cast."");
      $query->execute();
return $query->fetchAll();
              } }
$feedback = new feedback;
$articles = $feedback->fetch_all();