0

データベーステーブル内の投稿から動的リンクを作成しようとしていますが、ユーザーがすでにログインしているときにリンクを作成する方法がわかりません。

みたいなことを思います。

    <?php $articles = new Articles();

foreach($articles->fetch_user_article($_GET['uid']) as $article) :?>
 <a href="edit_articles.php?uid=<?php echo $_SESSION['id']?>&article=<?php echo $article['id'];?>"><?php echo $article['title'];?></a>

    <?php endforeach ?>

これにより、次のようなリンクが表示されます

edit_articles.php?uid=5&article=213

記事 ID:s は DB テーブルから正しいです。

今、私の edit_articles.php ファイル

$articles = new Articles();
$article = $articles->fetch_user_article($_GET['uid']); 
echo $article['text'];

しかし、私が edit_articles.php ファイルに到達すると、私は得る

Undefined index: text

そして私の機能

function fetch_user_article($uid){
        $uid = (int)$uid;
        $query = $this->link->query ("SELECT id, title,text FROM blog WHERE user_id = '{$uid}' ");
        $tweet = array();
        while(($row = $query->fetch(PDO::FETCH_ASSOC)) !== FALSE) { 
            $tweet[] = $row;
        }
        return $tweet;
    }
4

1 に答える 1

1

関数 fetch_user_article が複数の記事を返しています。このように使用して、すべての記事に影響を与えます。

$articles = $articles->fetch_user_article($_GET['uid']);

foreach ( $articles AS $article ) {
    echo $article['text'];
}

fetch_user_article が 1 つの記事のみを返すようにするには、テーブル blog のフィールド user_id を一意にする必要があります。

または、クエリを書き直す必要があります

 SELECT id, title,text FROM blog WHERE user_id = '{$uid}'

したがって、次のような結果が 1 つだけ得られます。

      $article_id = $_GET['article'];
      SELECT id, title,text FROM blog WHERE id = '{$article_id}'
于 2013-05-18T21:47:16.983 に答える