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 が存在すること) を処理する必要があります。

スーパーグローバル変数 (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 に答える