|
|
|
|
|
для: ВЛ
(20.05.2005 в 19:48)
| | А если так:
$date = date("d.m.Y H:i", time());
|
Если Вы поставили в таблице поле типа даты, тогда лучше сделать так
insert into msgs (name, email, msg, date) values ('$name', '$email', '$msg', now())
|
now() - текущая дата | |
|
|
|
|
автор: ВЛ (20.05.2005 в 19:48) |
|
|
для: alik
(20.05.2005 в 18:53)
| | Я добавил дату, но она неправильно отображается - стоит дата 1970 г.
Код:
if (isSet($name)) {
$name = HTMLSpecialChars($name);
$email = HTMLSpecialChars($email);
$msg = HTMLSpecialChars($msg);
$date = date("d.m.Y H:i", $row["datetime"]);
if ($name!="" and $msg!="") {
$sql = "insert into msgs (name, email, msg, date) values ('$name', '$email', '$msg', '$date')";
mysql_query($sql);
mysql_close();
header("Location: $SCRIPT_NAME");
exit;
}
}
$pnumber = 10;
if($page == "") $page=1;
$begin = ($page - 1)*$pnumber;
$guest = mysql_query("select * from msgs limit $begin, $pnumber;");
$total = mysql_query("select count(*) from msgs;");
echo "<p><b>";
if(guest && $total)
{
$tot = mysql_fetch_array($total);
$number = (int)($tot[0]/$pnumber);
if((float)($tot[0]/$pnumber)-$number != 0) $number++;
for($i = 1; $i<=$number; $i++) {
if($number == $i) {
if($page == $i) echo "[".(($i - 1)*$pnumber + 1)."-".$tot[0]."]";
else echo "<a href=index.php?page=".$i." title='ïîêàçàòü ñîîáùåíèÿ'>[".(($i - 1)*$pnumber + 1)."-".$tot[0]."]</a>";
} else {
if($page == $i) echo "[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]";
else echo "<a href=index.php?page=".$i." title='ïîêàçàòü ñîîáùåíèÿ'>[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</a>";
}
}
echo "</p></b><table width=100% border=1>";
while($qst = mysql_fetch_array($guest)) {
$name = htmlspecialchars($qst['name']);
$email = htmlspecialchars($qst['email']);
$msg = htmlspecialchars($qst['msg']);
$date = date("d.m.Y H:i", $row["datetime"]);
echo "<tr><td width='100%' bgcolor=#F0F0F0><b>$name</b>
e-mail: <a href=mailto:$email>$email</a> Отправлено: $date</td></tr>
<tr valign='top'><td>$msg</td></tr>";
} echo "</table>";
} else { echo ("Îøèáêà ïðè âûáîðêå ñîîáùåíèé..."); exit(); }
?>
<div align="center">
<form action="index.php" method="post">
Âàøå èìÿ: <input type="text" name="name"> <br>
Âàø E-mail: <input type="text" name="email"> <br>
<textarea cols="50" rows="5" name="msg"></textarea> <br>
<input type="submit" value="Ïåðåäàòü">
</form>
</div>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: ВЛ
(20.05.2005 в 18:41)
| | Измените строку
$guest = mysql_query("select * from msgs limit $begin, $pnumber;");
|
на
$guest = mysql_query("SELECT * FROM msgs ORDER BY id DESC LIMIT $begin, $pnumber;");
|
Но лучше всего добавить в таблицу поле, в котором будут хранится время добавления сообщения (дата) и сортировать по последнему добавлению (т.е. по дате) | |
|
|
|
|
автор: ВЛ (20.05.2005 в 18:41) |
|
|
для: alik
(20.05.2005 в 01:56)
| | Спасибо, теперь работает, но осталась небольшая проблема: новые сообщения в конце книги, на последней странице, а нужно, чтобы на первой были. Знаю, есть такая функция fsort вроде. | |
|
|
|
|
|
|
|
для: ВЛ
(20.05.2005 в 01:07)
| | Используя Вашу таблицу вот Вам постраничная навигация гостевой книги
<?
include "config.php"; //связь с базой данных
$pnumber = 10; //кол-во сообщений на 1 страницу
if($page == "") $page=1;
$begin = ($page - 1)*$pnumber;
$guest = mysql_query("select * from msgs limit $begin, $pnumber;");
$total = mysql_query("select count(*) from msgs;");
echo "<p><b>";
if(guest && $total)
{
$tot = mysql_fetch_array($total);
$number = (int)($tot[0]/$pnumber);
if((float)($tot[0]/$pnumber)-$number != 0) $number++;
for($i = 1; $i<=$number; $i++) {
if($number == $i) {
if($page == $i) echo "[".(($i - 1)*$pnumber + 1)."-".$tot[0]."]";
// book.php - страница гост. книги
else echo "<a href=book.php?page=".$i." title='показать сообщения'>[".(($i - 1)*$pnumber + 1)."-".$tot[0]."]</a>";
} else {
if($page == $i) echo "[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]";
else echo "<a href=book.php?page=".$i." title='показать сообщения'>[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</a>";
}
}
echo "</p></b><table width=100% border=1>";
while($qst = mysql_fetch_array($guest)) {
$name = htmlspecialchars($qst['name']);
$email = htmlspecialchars($qst['email']);
$msg = htmlspecialchars($qst['msg']);
echo "<tr><td width='100%' bgcolor=#F0F0F0><b>$name</b>
e-mail: <a href=mailto:$email>$email</a></td></tr>
<tr valign='top'><td>$msg</td></tr>";
} echo "</table>";
} else { echo ("Ошибка при выборке сообщений..."); exit(); }
?>
|
| |
|
|
|
|
автор: ВЛ (20.05.2005 в 01:07) |
|
|
для: cheops
(20.05.2005 в 00:30)
| | Код книги, состоящей из одного файла, я привел в первом сообщении, а это код, создающий таблицу в базе данных:
CREATE TABLE msgs (
id int(11) NOT NULL auto_increment,
name varchar(50) NOT NULL default '',
email varchar(50) NOT NULL default '',
msg text,
PRIMARY KEY (id)
);
|
| |
|
|
|
|
|
|
|
для: ВЛ
(19.05.2005 в 20:49)
| | Приведите код, который не работает как надо (лучше прикрепить его в виде отдельного файла к сообщению), так же неплохо, если вы приведёте структуру таблицы msgs, чтобы мы могли легко воссоздать эту таблицу. Оператор CREATE TABLE этой таблицы можно получить воспользовавшись запросом
| |
|
|
|
|
автор: ВЛ (19.05.2005 в 20:49) |
|
|
для: cheops
(19.05.2005 в 12:48)
| | Извините, так и не получается. Не пойму, куда какой код вставить. В этой статье - http://www.softtime.ru/info/articlephp.php?id_article=33 все понятно написано, но моя гостевая не работает, как надо. | |
|
|
|
|
автор: ВЛ (19.05.2005 в 19:45) |
|
|
для: cheops
(19.05.2005 в 12:48)
| | Спасибо вам, сейчас попробую сделать. | |
|
|
|
|
|