|
|
|
| Я уже как то заводил эту тему. Но тогда лишь я только ришал в чем ее делать (файлы или БД). И вот всетаки решился. Я создал БД. Туда все данные, которые мне нужно закидываю. Теперь мне все это нужно прочитать не сверху в низ, а на оборот. Начиная с нижней записи.... Как мне это сделать? Вот так я их считываю:
$query = "SELECT * FROM guestbook";
$usr = mysql_query($query);
//$umsg = trim($user_name['msg']);
while ( $user_name = mysql_fetch_array($usr) ) print $user_name['name'],.............,............,........; | |
|
|
|
|
|
|
|
для: Roo$
(04.09.2006 в 17:15)
| | У таблицы нет собственного порядка. Данные там лежат внавал.
Без ORDER BY говорить о следующей, предыдущей, последней, первой и т.д. строках - бессмысленно. | |
|
|
|
|
|
|
|
для: Trianon
(04.09.2006 в 17:18)
| | Вы наверное меня неправельно поняли. Я считываю данный по строкам print $user_name['name'],$user_name['time'],............,........; Начиная с первой строки и кончая n-ой стракой. А мне нужно прочитать начиная с последней строки ло первой. | |
|
|
|
|
|
|
|
для: Roo$
(04.09.2006 в 17:35)
| | Хорошо, я Вас неправильно понял. | |
|
|
|
|
|
|
|
для: Trianon
(04.09.2006 в 17:18)
| | Я понял тебя .... Order by, говоришь? Щас попробую | |
|
|
|
|
|
|
|
для: Trianon
(04.09.2006 в 17:18)
| |
SELECT *
FROM tb_name
ORDER BY stolbec DESC
|
А если мне надо не по одному столбцу а по всем строкам.. | |
|
|
|
|
|
|
|
для: Roo$
(04.09.2006 в 20:37)
| | в ORDER BY можно перечислить не один столбец. Хотя обычно это излишне. | |
|
|
|
|
|
|
|
для: Roo$
(04.09.2006 в 20:37)
| | Я понял!!!!!! Я буду выводить инфу по времени.... Начиная с самого конца
SELECT *
FROM tb_name
ORDER BY puttime DESC
|
| |
|
|
|
|
|
|
|
для: Roo$
(04.09.2006 в 17:15)
| | С этим я уже разобрался. Теперь помогите пож. со страничками в гостевой книге. Мне нужно чтобы отображались на каждой страничке по 15 сообщений. Странички отображались следующим образом 1 2 3 ... n n n
где n n n - это последние странички.
Как или с чего начать мне? Все сообщения хронятся в БД:
CREATE TABLE `guestbook` (
`id_msg` int(8) NOT NULL auto_increment,
`name` text NOT NULL,
`privat` tinytext NOT NULL,
`msg` mediumtext NOT NULL,
`add` longtext,
`puttime` datetime NOT NULL default '0000-00-00 00:00:00',
`hide` enum('show','hide') NOT NULL default 'show',
PRIMARY KEY (`id_msg`)
) TYPE=MyISAM;
|
| |
|
|
|
|
|
|
|
для: Roo$
(04.09.2006 в 21:09)
| | смотрите поиском "постраничная навигация"
Темы были и тут, и в задачах. | |
|
|
|
|
|
|
|
для: Trianon
(04.09.2006 в 21:28)
| | Нашел то что мне надо... Сделал я навигацию. Но возник следующий вопро. Как мне объединить эти две строчки?
$result = mysql_query("SELECT * FROM guestbook LIMIT $start, $num");
$result = mysql_query("SELECT * FROM guestbook ORDER BY puttime DESC");
|
| |
|
|
|
|
|
|
|
для: Roo$
(05.09.2006 в 00:00)
| |
$result = mysql_query("SELECT * FROM guestbook SELECT * FROM guestbook ORDER BY puttime DESC LIMIT $start, $num");
|
| |
|
|
|
|
|
|
|
для: Владимир22
(05.09.2006 в 00:09)
| | Не работает | |
|
|
|
|
|
|
|
для: Владимир22
(05.09.2006 в 00:09)
| |
$result = mysql_query( "SELECT * FROM guestbook ORDER BY puttime DESC LIMIT $start, $num");
|
| |
|
|
|
|
|
|
|
для: Trianon
(05.09.2006 в 09:25)
| | Большое спасибо за помощь...заработало.
Теперь у меня возник следующий вопрос. Сделал постраничную навигацию так как написанно у вас в примере. Но когда я перехожу я на последнюю страничку у меня выдает следующее.... (см. screen). Поидее 2006-09-04 12:46:14 это последняя запись и после нее ничего не надо уже выводить, а програмима проганяет ее до самого конца страницы (n-раз) | |
|
|
|
|
 5.8 Кб |
|
|
для: Roo$
(05.09.2006 в 09:52)
| | Вот код программы. | |
|
|
|
|
|
|
|
для: Roo$
(05.09.2006 в 09:52)
| | Извините, это не мой пример. Я бы такого не написал. | |
|
|
|
|
|
|
|
для: Roo$
(05.09.2006 в 09:52)
| | могу разве что посоветовать 77-ю строку
for($i = 0; $i < $num; $i++)
|
изменить так:
for($i = 0, $num = count($postrow); $i < $num; $i++)
|
| |
|
|
|
|
|
|
|
для: Trianon
(05.09.2006 в 11:10)
| | Попробывал как ты мне посоветовал. Намного лучше но...всеравно не так... Выводится на каждой странице в самомо конце по одной пустой таблице | |
|
|
|
|
|
|
|
для: Roo$
(05.09.2006 в 11:39)
| | нуль не учел.
for($i = 0, $num = count($postrow)-1; $i < $num; $i++)
|
| |
|
|
|
|
|
|
|
для: Trianon
(05.09.2006 в 11:42)
| | Работает!!!!!!!Огромное С П А С И Б О. | |
|
|
|
|
|
|
|
для: Roo$
(04.09.2006 в 17:15)
| | У меня возник следующий вопрос. У меня в гостев.книге сообщения могут добавлять только зарегестр. пользователи. Я делаю приват.сообщения. И мне нужно сделать проверку типо такого:
Если в калонке privat БД стоит надпись ALL, то эти сообщения видны всем пользователям, а если стоит ник пользователя то это сообщение видит только он + все которые ALL. | |
|
|
|
|
|
|
|
для: Roo$
(05.09.2006 в 20:20)
| | А в чём возникает сложность?
PS Под новые вопросы лучше заводить новые темы? | |
|
|
|
|
|
|
|
для: cheops
(05.09.2006 в 21:30)
| | Я просто запутался в проверке.... Подскажите пожалуйсто.....
$ulogin=$HTTP_COOKIE_VARS["name"]; //имя зарегестриров. польз. которое хранится в куках.
if ($ulogin=='Admin')
{
$query = "SELECT * FROM guestbook "; //admin читает все сообщения
$usr = mysql_query($query);
}
else
{
$query = "SELECT * FROM guestbook WHERE privat='$ulogin'"; //Сообщение читает только тот //польз. кому было оно послано
$usr = mysql_query($query);
}
|
А у меня есть еще сообщение которые должны быть видны всем
$query = "SELECT * FROM guestbook WHERE privat='all'";
$usr = mysql_query($query);
|
Как мне их вывести. Если так то под adminom они будут дублироваться
P/S/ Я ведь же это все делаю в гостевой книге? Зачем мне нужно заводить новую тему? | |
|
|
|
|
|
|
|
для: Roo$
(05.09.2006 в 21:37)
| | Я думал так, но ничего не выходит
if ($ulogin=='Admin')
{
$query = "SELECT * FROM guestbook ";
$usr = mysql_query($query);
}
else
{
$query = "SELECT * FROM guestbook WHERE privat='all' WHERE privat='$ulogin'";
$usr = mysql_query($query);
}
|
Под Админом все нормально а под польз. вообще ничего не выводит | |
|
|
|
|
|
|
|
для: Roo$
(05.09.2006 в 21:37)
| | А вы объедините условия полного прочтения и приватных сообщений
<?php
$ulogin=$HTTP_COOKIE_VARS["name"]; //имя зарегестриров. польз. которое хранится в куках.
if ($ulogin=='Admin')
{
$query = "SELECT * FROM guestbook "; //admin читает все сообщения
$usr = mysql_query($query);
}
else
{
$query = "SELECT * FROM guestbook WHERE privat='$ulogin' OR privat='all'"; //Сообщение читает только тот //польз. кому было оно послано
$usr = mysql_query($query);
}?>
|
Нет сообщения администратора и пользовательские сообщения не будут смешиваться.
PS Только не советую вам авторизацию проводить по содержимому cookie, любой пользователь, который запишет себе в cookie имя администратора получит доступ ко всем сообщениям, даже не зная пароля администратора.
PPS Сообщения у администратора дублироваться не будут
PPPS Проблема всё равно новая, а сообщение уже достаточно гомоздкое - даже если человек захочет вам ответить, его может отпугнуть количество сообщений в теме, которые нужно читать и обдумывать, прежде чем писать свой пост. | |
|
|
|
|
|
|
|
для: cheops
(05.09.2006 в 21:50)
| | Большое спасибо cheops. Ты мне очень сильно помог.
P/S/:Прислушаюсь к твоим советам | |
|
|
|