【问题标题】:How to display certain comments stored on a database如何显示存储在数据库中的某些评论
【发布时间】:2014-01-27 14:10:30
【问题描述】:

我为评论框创建了一个表单,我将在几个不同的页面上使用它。它将数据发送到我的数据库中名为“cmets”的表中,该表具有列“id”“author”“body”“created”和“page_name”。我是 php 新手,我想弄清楚如何只显示与当前页面具有相同“page_name”值的 cmets。

为了获得“page_name”,我在表单中使用了这个代码:

<input type="hidden" name="page_name" value="<?=$_SERVER['REQUEST_URI']?>" />

这是我正在构建的用于显示 cmets 的代码:

<div id="comments">
  <?php foreach($comments as $comment): ?>
    <div class="comment" style="margin-bottom: 2em;">
        <div class="author">
          <b><?php echo htmlentities($comment->author); ?>:</b>
        </div>
        <div class="meta-info" style="font-size: 0.8em;">
          <?php echo datetime_to_text($comment->created); ?>
        </div>
      <div class="body">
          <?php echo strip_tags($comment->body, '<strong><em><p>'); ?>
      </div>
    </div>
  <?php endforeach; ?>
  <?php if(empty($comments)) { echo "No Comments."; } ?>
</div>

我只是不确定如何告诉页面只显示与用户所在页面具有相同“page_name”值的 cmets。任何帮助将不胜感激!

【问题讨论】:

  • 获取 cmets 的数据库查询在哪里?您可以在循环内添加一个简单的if 语句来检查cmets page_name 值与当前page_name 的对比,但您应该真正编辑数据库查询,以便仅加载相关的cmets首先。
  • 你的数据检索查询是什么。
  • 您需要通过查询来完成,根据页面名称对查询应用过滤器

标签: php mysql forms


【解决方案1】:

你要查询url对应的数据like。

对于数据库连接,请使用以下代码:

<?php
// Create connection
$db_con=mysql_connect('servername','db username','dbpassword');
if (!$db_con) 
{
    die('Could not connect: ' . mysql_error());
}
$connection_string=mysql_select_db('db name',$db_con);
?>

查询使用代码:

$url=$_SERVER['REQUEST_URI'];
$query=mysql_query("select * from comments where page_name='".$url."'");
while($result=mysql_fetch_row($query))
{
echo $result[0]."<br>".$result[1]."<br>";          // echo all values that are needed for displaying. You can do the coding for displaying formatted values inside this loop.
}

【讨论】:

  • 谢谢,看起来它可以满足我的需求。我现在才确定 "echo $result[0]."
    ".$result[1]."
    ;" 行是什么方法。当我尝试将其放入时,它会警告我语法错误,但由于我不理解该行,所以我不知道如何修复它。谢谢!
  • Echo 用于在 php 中打印文本/值。这里如果表中总共有 3 条记录满足查询,那么 while 循环将执行 3 次。即,它将执行直到有满足条件的记录。每次,记录都会存储在变量 $result 中,因此为了获取记录的每个字段值,我们必须调用结果集,这里 $result 下标为字段数。如果 id 是第一个字段,那么我们应该使用 $result[0] 来获取 id。
  • 我们可以用 PHP 打印 html 标签,方法是将其包含在 "" 中。所以 "; ?> 将产生一个中断元素。
  • 所以,如果我理解正确的话,我必须知道在显示之前要显示多少个 cmets?但我不知道会有多少会提前,因为人们可以随时添加 cmets...
  • 我在 mysql_fetchRow 上也遇到了错误。它说这是一个未定义的函数。当我在php手册上查找时,它说扩展名被设置为删除
猜你喜欢
  • 1970-01-01
  • 2017-05-30
  • 2022-01-27
  • 1970-01-01
  • 2018-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多