个性化内容

时间:2018-10-28 13:01:38

标签: php

我想单击一个链接,显示个性化的内容。

<div class="tab_event">             
<?php
do{
    echo'                   


    <table class="preview_event">
        <td class="date_event">
            '.$row["Date"].'
        </td>
        <td class="title_event">
            <p>'.$row["Title"].'<br></p>
            <a href="">Read more !</a>
        </td>

    </table>


';
} while ($row = $query->fetch(PDO::FETCH_ASSOC));

?>

我的程序包括对数据库中的某些文章进行“预览”。 当您单击“阅读更多”时,我会自动希望您看到一个页面,其中所有文章均已撰写。 但是我对如何执行此操作没有任何想法,我不想为每篇文章手动创建页面。 有谁知道如何做吗? 谢谢

2 个答案:

答案 0 :(得分:1)

要实现您想要的目标,您需要生成一个href到另一个/相同的PHP驱动页面以及一个带有一些值的查询参数,该值可以唯一标识数据库中的文章。

假设您的数据库表结构类似于

| Id | Date       | Title                  |
|----|------------|------------------------|
| 1  | 0000-00-00 | Some catchy post title |
| 2  | 0000-00-00 | Yet another post title |
| 3  | 0000-00-00 | Some other title?      |

我将使用上述表结构使用$row["Id"]

   <div class="tab_event">             
    <?php
      do {
        echo '                   
        <table class="preview_event">
            <td class="date_event">
                '.$row["Date"].'
            </td>
            <td class="title_event">
                <p>'.$row["Title"].'<br></p>
                <a href="/showArticle.php?aid='.$row["Id"].'">Read more !</a>
            </td>

        </table>';
      } while ($row = $query->fetch(PDO::FETCH_ASSOC));
    ?>

现在访问链接脚本(showArticle.php)上的aid参数,以从databse获取文章。

<?php
   if (!empty($_GET['aid']) {
      // escape and verify value of `$_GET['aid']`
      // fetch and return article from database using the `$_GET['aid']` parameter
   } else {
      // tell the user no `Id` was provided
   }
?>

答案 1 :(得分:0)

这是一个非常容易的任务,首先,您需要修改表格页面,并编辑以下内容的更多链接:

<a href="read.php?article=.$row['article_id'].">Read more !</a>

article_id是单击链接时您想用来存储该信息的任何记录标识,例如数据库中文章的id字段,现在您创建一个read.php页面,该页面将更改其内容。内容基于链接中文章的ID,因此您只需创建该文章,而无需为每个文章创建一页。

然后在read.php中从URL检索该信息,以便您可以使用正确的文章ID查询数据库并显示其内容:

...
...
$article_id = $_GET['article'];

// then you query the database using that variable (using whatever method you prefer, this in just an example)

$query = $db->prepare("SELECT title, date, content FROM articles WHERE articles.id = " . $article_id);

$query->fetch(PDO::FETCH_ASSOC);

通过这种方式,您可以检索单身人士的文章信息并将其显示在read.php页面上,仅创建一个页面,该页面会根据您单击的链接来更改其内容。

此外,值得一提的是,您应该删除do...whileforforeach循环会更优雅。

一个例子是(假设包含结果的变量称为$rows):

<table> <!-- table tag outside of the loop, otherwise for each article a table is created, which is wrong -->
 <tbody>
  <?php

  foreach($rows as $article) {
   echo "<tr>"; // since we need one row for each article, we include the tr tag in the loop
   echo "<td>".$article['title']."</td>";
   echo "<td>".$article['date']."</td>";
   echo "<td>".$article['author']."</td>";
   ...
   ...
   echo "</tr>"; // and we close the row
  }

  ?>
 </tbody>
</table>