2

だから、MySQL と PHP を使って簡単なシャウトボックスを作りたいと思っています。また、一度に最後の 5 ~ 10 件またはその他のコメントのみを表示するように制限する方法も知っています。ただし、シャウトボックスに最後の5つのコメントのみが表示され、「古いコメント」というボタンがあり、次の5つなどが表示され、「新しいコメント」という別のボタンが表示されるようにするプロセスはどうなるでしょうか。そして1ページ戻ります。大量のコードを書かずにどうやってそれを行うのか、私にはよくわかりません。

私のシャウトボックスのコードは次のとおりです。

addmessage.php

<?php
include("config.php");
if ($_POST['shoutname'] and $_POST['shout'] !== " ") {
    if (isset($_POST['shoutname'])) {
        $shoutname = mysql_real_escape_string($_POST['shoutname']);
        $shout = mysql_real_escape_string($_POST['shout']);
        mysql_query("INSERT INTO shoutbox (name, shout) VALUES ('$shoutname','$shout')");
        mysql_close($bd);
    }
}

header("Location: shoutbox.php");
?>

(config.php には私の mysql 接続情報が含まれています)

シャウトボックス.php

<?php
include("config.php");
$data = mysql_query("SELECT * FROM shoutbox ORDER BY id DESC LIMIT 5");
    while ($info = mysql_fetch_array($data)) {
        echo $info['name']. "<br>";
        echo $info['shout']. "<br>";
    }
?>
<form method="post" action="addmessage.php">
Name: <input type="text" name="shoutname" /><br />
Message: <input type="text" name="shout" />
<input type="submit" />
</form>

次の5 つのコメントを ID 順などで表示するボタンを作成する方法がわかりません。

4

3 に答える 3

0

mysql クエリにオフセットを挿入すると、最初の 5 つのメッセージの次のメッセージを取得できます。次のようになります。

SELECT * FROM shoutbox ORDER BY id DESC LIMIT [OFFSET],[LIMIT]

オフセットは、shoutbox.php ファイルで自動的に生成されたリクエスト パラメータとして投稿できます。

参照: http://dev.mysql.com/doc/refman/5.0/en/select.html

于 2013-08-20T20:48:10.003 に答える
0

シャウトボックス.php

<?php
include("config.php");
$page = (isset($_GET['page'])?$_GET['page']:1);
$start = ($page * 5) - 5;
$data = mysql_query("SELECT * FROM shoutbox ORDER BY id DESC LIMIT ".$start.",5");
    while ($info = mysql_fetch_array($data)) {
        echo $info['name']. "<br>";
        echo $info['shout']. "<br>";
    }
?>
<a href="shoutbox.php?page=<?php echo $page+1;?>">Next 5 messages</a>
<form method="post" action="addmessage.php">
Name: <input type="text" name="shoutname" /><br />
Message: <input type="text" name="shout" />
<input type="submit" />
</form>

条件付きの次と前:

<?php
include("config.php");
$page = (isset($_GET['page'])?$_GET['page']:1);
$start = ($page * 5) - 5;
$data = mysql_query("SELECT * FROM shoutbox ORDER BY id DESC LIMIT ".$start.",5");
    while ($info = mysql_fetch_array($data)) {
        echo $info['name']. "<br>";
        echo $info['shout']. "<br>";
    }
    $q = mysql_query("SELECT count(id) AS count FROM shoutbox");
    $count = mysql_fetch_assoc($q);
    $count = $count['count'];
    if($start + 5 < $count)
        echo '<a href="shoutbox.php?page='. ($page+1) .'">Next 5 messages</a>';
    if($count > 0 && $start>0)
        echo '<a href="shoutbox.php?page='. ($page-1) .'">Previous 5 messages</a>';
?>
<form method="post" action="addmessage.php">
Name: <input type="text" name="shoutname" /><br />
Message: <input type="text" name="shout" />
<input type="submit" />
</form>
于 2013-08-20T20:49:49.260 に答える