-1

DB に次のテーブルがあります。

  1. ID
  2. 題名
  3. 見出し
  4. コンテンツ
  5. 日にち
  6. タグ
  7. ユーザー名
  8. お気に入り
  9. 嫌い
  10. コメント

行の内容が表示されるようにデータベースを接続していますが、新しいエントリが作成されるたびに「投稿ブロック」を生成して一覧表示する方法がわかりません。また、投稿を 1 ページあたり 10 ~ 20 に制限しながら、最新の投稿から古い投稿の順に一覧表示したいと思います。

<?php

$connect = mysql_connect('localhost','root','','andrewryan') or die('error connection');

mysql_select_db('andrewryan');

$query = "Select * FROM entry";
$result = mysql_query($query);
$row = mysql_fetch_array($result);

$username = $row['username'];
$title = $row['title'];
$heading = $row['heading'];
$content = $row['content'];
$tags = $row['tags'];
$like = $row['like'];
$dislike = $row['dislike'];
$comment = $row['comment'];
$date = $row['date'];
?>

また、HTML のブロックが 1 つだけの別のページもあります。これは、必要な場所にすべての変数が指定された投稿フレームワークです。私が何をしようとしているのかについての参照は、このリンクで見つけることができます

4

2 に答える 2

1

クエリに関する限り:

// Tildes on date since it is a keyword and some databases will error out without them
// Order by date is if you are using a compatible storing: unix timestamp or DateTime field
$query = "Select * FROM entry ORDER BY `date` DESC";
$result = mysql_query($query);
$rowCount = 0;
while($row = mysql_fetch_array($result)) {
    $username[$rowCount] = $row['username'];
    $title[$rowCount] = $row['title'];
    $heading[$rowCount] = $row['heading'];
    $content[$rowCount] = $row['content'];
    $tags[$rowCount] = $row['tags'];
    $like[$rowCount] = $row['like'];
    $dislike[$rowCount] = $row['dislike'];
    $comment[$rowCount] = $row['comment'];
    $date[$rowCount] = $row['date'];
    $rowCount++;
}

これは、投稿を表示する限りです。

// limit is used to show the max posts per page.
$limit = 20;

//The following for is for paging
for($i = 1; $i <= $numofpages; $i++){
    if($i == $page){
        echo $i . " ";
    }else{
        echo "<a href='page.php?page=" . $i . "'>" . $i . "</a> ";
    }
}

// The following is to show your post blocks
for($j = 0; $j < $limit; $j++){
    //This will give you the appropriate post for the page
    $temp = $j + (($page * $limit) - $limit);
    // Your code to show your post blocks
    echo $username[$temp]; //For example, just format for your site layout.
}
于 2012-07-25T19:45:32.507 に答える
1
  1. フェッチしたいすべてのフィールドを選択します。
  2. DATE_FORMAT関数を使用して、日付フィールドをフォーマットし、新しいエイリアスに割り当てます。ndateという名前を付けました。
    1. 次に、ndateで注文します

SELECT username、title、heading、content、tags、like、dislike、comment、DATE_FORMAT(date、'%d-%M-%Y')AS ndate FROM entry ORDER BY ndate

日付を$row['ndate']としてフェッチします

于 2012-07-25T19:43:21.587 に答える