使用HTML模板创建动态页面& PHP

时间:2015-07-12 19:49:29

标签: php html mysql

我有一个静态HTML页面,我希望使用PHP从数据库中检索数据,并在HTML / PHP页面上显示。

我将使用分页来执行此操作,因为我需要显示的信息可能会更改,因此以这种方式完成更容易,更简单。

我已经使用Google搜索分页,并对其工作原理充满信心,但是我的HTML页面上需要显示的结果将基于我的数据库中名为“类别ID”的字段。

当用户最初将数据提交到我的数据库时,它将被分类(例如,绘画和装饰或机械)。

然后,我创建了一个包含所有可能类别的不同数据库表,并将ID与它们相关联。 (不确定这是否正确,请在适当的时候提出建议。)

因此,当用户搜索说“绘画和装饰”时,它将与ID相关联,我的想法是将数据库过滤到ID为1的所有列表,并显示在我的页面上。< / p>

但是,我很难按类别ID过滤数据库中的数据。我所遵循的教程是here

1 个答案:

答案 0 :(得分:1)

  1. 您使用PDO 执行select语句;它是PHP的SQL数据库API。是的,我建议使用PDO。我喜欢它的内容包括:1。它面向对象2.它抽象出使用任何特定SQL API(SQLite,MySQL,PostgreSQL,Oracle等)的细节。请记住,使用PDO对于编写安全的应用程序既不必要也不充分 - 开发人员有责任确保站点不易受SQL注入,XSS(跨站点脚本)攻击以及喜欢。当然可以使用易受这两者影响的PDO编写应用程序。

  2. 标题和描述之类的简单字符串值很容易 - 只需像在任何其他PHP变量中一样在页面中插入它们:

    <div>
      <div class="site-title"><?= htmlspecialchars($row->Title) ?></div>
      <div class="site-description"><?= htmlspecialchars($row->Description) ?></div>
    </div>
    

    请注意,在此示例中,我记得正确地转义HTML的值。忽略这样做不仅会破坏页面的有效性和/或布局,而且如果这些值是用户提交的,那么也会使您的网站容易受到XSS攻击。您以基本相同的方式处理网站和图像 - 您的任务是将这些值插入到HTML中,以便显示指向网站的链接和images/文件夹下的正确图像。以下是您可以这样做的方法:

    <div><a class="site-link" href="<?= htmlspecialchars($row->Website) ?><?= htmlspecialchars($row->Website) ?></a></div>
    <img class="site-image"
      src="images/<?= htmlspecialchars(urlencode($row->Image)) ?>"
      alt="<?= htmlspecialchars($row->Title) ?>">
    

    此示例仅在您的图像实际上是从相对于当前页面的URL的公共images/目录提供时才有效。我还对文件路径进行了URL编码,以便转义在URL中无效的任何字符(例如,这会将文件名中的空格转换为+个字符;还有一个命名不佳的变体名为{{1将空格转换为rawurlencode,严格来说就是实际标准。

  3. 是的,那就是要做的事情。您可以使用%20offset SQL子句轻松实现分页。
  4. PDO有很多选项来定制它的行为,一个完整的例子有点涉及,但这是使用MySQL数据库的一个小例子:

    limit