Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Сортировка списка по страницам
Покинул форум
Сообщений всего: 36
Дата рег-ции: Сент. 2010
Помог: 0 раз(а)
Добрый день.
Подскажите пожалуйста кто знает, как решить проблему с отображением статистики на странице Журнала авторизации пользователей.
Дело в том, что я не чистил журнал несколько лет, а посещаемость сайта очень высокая и за это время скопилось очень много информации об авторизации пользователей.
При попытке открыть эту страницу сбор данных идёт слишком долго (более 5 минут) и за это время происходит таймаут с сервером.
У меня возникла идея, разделить статистику не единым списком, а разделить по страницам как это реализовано при поиске покупателей, просмотре заказов и многом другом разделённым по 20 записей на страницу.
Но вот реализовать это на странице журнала авторизации пользователей я не смог, не силён в программировании на таком уровне.
Единственное что сделал, это вставил в файл reports_customer_log.tpl.html код отображения страниц:
{if $navigator}
<p>{$navigator}
{/if}
Но для того чтобы была сортировка по страницам, этого мало, нужно добавить функцию в файл reports_customer_log.php но вот какой код, я не смог подобрать
Попробовал сделать по аналогии с другим файлом custord_new_orders.php где эта функция прописана так:
Где цифра 20 отвечает за количество отображаемых записей на странице, но дело то в том, что этот код с этими параметрами служит для запроса в таблицу с заказами и отображает список заказов, а мне надо журнал авторизации пользователей. Пробовал удалять лишние строки, менять вплоть до того, что оставлял оду строчку:
$navigatorHtml = GetNavigatorHtml( _getUrlToNavigate(), 20 );
но страница выдаёт ошибку
Помогите пожалуйста написать правильный код чтобы статистика журнала отображалась не единым списком, а по странично.
Я хочу сделать отображение не по 20 записей, а например по 500 на страницу, так как сейчас у меня 100000 записей единым списком не хочет выводить, сервер не справляется.
Вот код файлов в которые я хочу добавить отображение по страницам:
Я считаю что журнал посещения пользователей самим пользователям вообще не нужен.
Да и в принципе как и Вам самому.
Если хочется его просто прочесть то надо ставить лимит на вывод количества информации.
SELECT username FROM user_log LIMIT 500 например.
Я пользуюсь программой heidisql - очень удобно просматривать данные.
если очень надо сделать постраничный вывод то запрос надо сделать так:
SELECT username FROM user_log LIMIT 500 OFFSET 1
SELECT username FROM user_log LIMIT 500 OFFSET 500
SELECT username FROM user_log LIMIT 500 OFFSET 1000
OFFSET говорит о том с какой записи выводить информацию.
Если хотите что бы сайт нормально работал кончайте пользоваться smarty, он придуман для того что бы быстрее делать деньги на заказчиках сайтов, а не ускорять работу сайта. И пусть меня закидают программисты местные яйцами и помидорами - но это правда.
sKaa
Отправлено: 20 Ноября, 2011 - 18:18:38
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
emslt пишет:
кончайте пользоваться smarty
У меня свой шаблонизатор если задуматься то по типо смарти, только без все этих псевдо фишек и наворотов. Он умеет самое необходимое : искать в кэше шаблон, если есть то выводить его, если нет то скреплять любое кол-во мелких шаблонов (header, body, footer) в один, сохранять его в кэш и выводить
Stas11
Отправлено: 20 Ноября, 2011 - 23:48:34
Новичок
Покинул форум
Сообщений всего: 36
Дата рег-ции: Сент. 2010
Помог: 0 раз(а)
emslt пишет:
Я считаю что журнал посещения пользователей самим пользователям вообще не нужен.
Да и в принципе как и Вам самому.
Пользователям скорее всего да, он не нужен, а вот мне он очень даже нужен.
Во первых в журнале записываются все данные о входе, дата входв, время и ip адрес с которого был вход.
Например есть пользователь который оформляет заказы и не оплачивает их, я смотрю историю его входов и сравниваю какой у него IP, если статический, то баню, если динамика, то заношу в чёрный список, или например мне надо удалить пользователя, но прежде чем удалить, мне нужно знать, наложил ли он в свою корзины товары или нет, а для этого я смотрю дату последнего посещения, если больше 7 дней, значит корзина пуста (автоматически корзины очищаются через 7 дней). Ну и для многих других целей мне этот журнал нужен, к тому же там есть кнопка очистки журнала, но вот чтобы его очистить, нужно его открыть, а поскольку он отображается одной страницей с огромной полосой прокрутки, то открыть его спустя 2 года записей уже не получается.
Что касается смарти, то переходить на что то другое уже поздно, магазин работает 5 лет и основательно отлажен и автоматизирован для продаж. А то что смарти не есть гут, я уже слышал не однократно, но вот поделать что либо уже не могу к сожалению.
Насчёт коментария в виде <?PHP> это да, самого убивает, но переделываю по мере редактирования файлов, так как такие коменты во всех файлах шоп скрипта
Насчёт SELECT username FROM user_log LIMIT 500 OFFSET напишите пожалуйста поконкретнее, так как я в программировании как ученик второго класса.
И кстати, насколько я понял, это запрос в базу на выборку списка из журнала, но вся прелесть в том, что у меня уже есть отображение всех необходимых данных из таблицы, мне нужно только разделить эти данные по страницам.
Например имеем список из 1000 записей на одной странице, а нужно сделать отображение по 100 записей на 10 страницах или по 500 на 2 страницах.
На всех страницах где есть вывод по страницам, есть такой код:
{if $navigator}
<p>{$navigator}
{/if}
Именно он выводит на странице 1 2 3 4 5 6 ... 285 след >> | показать все
а вот как заставить работать отображение по страницам список, на котором есть список, но нет постраничного отображения, я не знаю
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.