0

そのため、私のブログ ページでは substr を使用して記事の一部のみを表示しています。アイデアは、誰かが見出しの 1 つをクリックすると、記事全体を表示するページに送信されるというものです。

リンクをクリックすると、URL に正しい見出しが表示されます。たとえば、4 番目のブログ エントリをクリックすると、index.php?id=4 にリダイレクトされます。問題は、このページのコンテンツが同じままで、何も変わらないことです。記事をクリックすると、その記事のみを含むページに移動し、他の記事を含まないようにするにはどうすればよいですか。これは一日中私の頭を悩ませてきました。

<?php
$dbinfo = "SELECT blog_id, title, date, body FROM content ORDER BY blog_id DESC LIMIT 0, 3";
$result = mysql_query($dbinfo) or die(mysql_error());
$return = '<p><a href="index.php"> Go Back To Content Page</a></p>';


if(mysql_num_rows($result) !=0):
    while($row = mysql_fetch_assoc($result)){
    echo '<div id="roundedbox"><h2><a href="index.php?id=' . $row['blog_id'] . '">' .  $row['title'] . ' </a></h2>';
    echo '<div id="date"><h5><p>' . $row['date'] . '</p></h5></div>';
    echo substr('<p>' . $row['body'] . '</p>',0, 90)." .... "." read more</div>";

}
else:
    echo '<p> UH OOH! THERE IS NO SUCH PAGE IT DOES\'T EXIST </p>'; 
    echo $return;
    endif;  
?>
4

1 に答える 1

0

コードにあるクエリは、テーブルのすべてのレコードを返します。必要なのは、$_GET['id'] の id パラメータに基づいてレコードを返すクエリです。SQL インジェクションを防ぐために整数のみを使用していることを確認することをお勧めします。

コードから、次のように $_GET['id'] パラメータを使用して適切なレコードをフェッチする別のクエリが必要です...

    //the parameter is set and it is an integer
        if(isset($_GET['id']) && is_int($_GET['id'])) {
            $blogId = (int)$_GET['id'];
            $query = "SELECT blog_id, title, date, body FROM content WHERE blog_id='$blogId'";
            // run query and get record data and output it

        } else {
            //code to return all records as list
            $dbinfo = "SELECT blog_id, title, date, body FROM content ORDER BY blog_id DESC LIMIT 0, 3";
            $result = mysql_query($dbinfo) or die(mysql_error());
            $return = '<p><a href="index.php"> Go Back To Content Page</a></p>';


           if(mysql_num_rows($result) !=0):
           while($row = mysql_fetch_assoc($result)){
           echo '<div id="roundedbox"><h2><a href="index.php?id=' . $row['blog_id'].$row['title'] . ' </a></h2>';
           echo '<div id="date"><h5><p>' . $row['date'] . '</p></h5></div>';
           echo substr('<p>' . $row['body'] . '</p>',0, 90)." .... "." read more</div>";

           }
           else:
             echo '<p> UH OOH! THERE IS NO SUCH PAGE IT DOES\'T EXIST </p>'; 
             echo $return;
           endif; 
          }
于 2013-06-12T14:08:03.683 に答える