0

我有一个用 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 的注释字段中列出的所有注释。每个评论都有一个“cast”选项卡,显示播客的 id。

我怎样才能让它反映正在查看的页面?

例如。

如果我正在查看 episode.php?id=1 那么我希望显示带有“1”的“演员”标签而不是“2”的“演员”标签的评论。episode.php?id=2 也是如此。等等!

请有人指导我如何做到这一点?

谢谢你。

凯夫

4

2 回答 2

0

所以在尝试了 Timo Dörsching 的建议后,我对此进行了一些尝试,但没有奏效。

我点击 undo 让它回到我原来的帖子并改变了这个:

<?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 } } ?>

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

于 2013-10-21T13:23:35.363 回答
-1

也许你必须过滤 $_GET['id'] & $cast .... 但这很容易谷歌如何做到这一点...看看:如何防止 PHP 中的 SQL 注入?

$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();
于 2013-10-21T13:01:09.367 回答