0

我正在尝试在我的 SQLite 中创建内容菜单。我想要打开每篇文章的链接。我希望在菜单下方打开链接,但目前我根本无法打开它们。我是这方面的初学者,所以我想我离它应该编码的东西还很远。因为,现在,每次我点击一个链接时,页面都会重新加载。如果有人可以帮助我或指出我正确的方向,将不胜感激!

这是代码:

$db = new PDO("sqlite:$dbPath");

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

$stmt = $db->prepare('SELECT * FROM Article;');
$stmt->execute();
$res = $stmt->fetchAll(PDO::FETCH_ASSOC); 


?>
  <?php foreach($res as $article): ?>
  <ul class="aside">
     <li class="aside"><a href="menu.php?=<?php echo $article['id']; ?>"><?php echo $article['id']; ?></a></li>
  </ul>

4

1 回答 1

0

我猜您提供的代码片段在 menu.php 中

首先,菜单链接中的 url 参数应采用以下形式:key=value

<a href="menu.php?article_id=<?php echo $article['id']; ?>">

然后您必须处理该信息(url 中 article_id 的存在)以呈现该文章的内容。

您可以使用 superglobals 变量(由 PHP 提供)$_GET 访问 url 参数。

您可以测试url中是否提供了article_id(表示用户点击了链接),通过sql请求获取文章信息并显示这些信息。

if (!empty($_GET['article_id'])) {
    $stmt = $db->prepare('SELECT * FROM Article WHERE id = :articleId');
    $stmt->execute(array(':articleId' => $_GET['article_id']));
    if ($stmt->rowCount() > 0) {
        $article = $stmt->fetch(PDO::FETCH_ASSOC);
        // your display code here :)
        print_r($article);
    }
}

无论如何,在名为“menu.php”的文件中显示文章的代码很奇怪;)例如,您应该将 menu.php 和 article.php 分开,包括 menu.php 和 article.php。这将更容易理解和维护。

于 2013-09-25T10:28:24.307 回答