所以我想用MySQL和PHP制作一个简单的shoutbox,我知道这两种语言都足够容易。另外我知道如何限制它只显示最后5-10或一次任何评论。然而,制作它的过程是什么,所以shoutbox只显示最后5条评论,然后有一个按钮显示“旧评论”,它显示下一个5等等,然后另一个按钮显示“较新评论”它会回到页面。如果不编写大量代码,我不太清楚如何做到这一点。
以下是我的shoutbox代码:
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连接信息)
shoutbox.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>
我只是不确定如何制作一个按钮,显示下一个按ID排序的五条评论,依此类推。
答案 0 :(得分:0)
您可以通过在mysql查询中插入偏移量来获取前5条消息旁边的消息。它看起来像这样:
SELECT * FROM shoutbox ORDER BY id DESC LIMIT [OFFSET],[LIMIT]
您可以将偏移量作为已在shoutbox.php文件中自动生成的请求参数发布。
答案 1 :(得分:0)
<强> shoutbox.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>
有条件的下一个&amp;上一个:强>
<?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>
答案 2 :(得分:0)
SELECT * FROM shoutbox ORDER BY id DESC LIMIT OFFSET,LIMIT
在您的情况下,对于较早的评论,您的OFFSET首次为0且限制为5 然后 OFFSET 5和LIMIT 5 然后 OFFSET 10和LIMIT 5 所以.......
对于较新的评论以相反的顺序运行