imho.ws |
![]() |
![]() |
![]() |
# 1 |
::VIP::
Регистрация: 14.11.2001
Адрес: In dA HAus
Сообщения: 1 007
![]() ![]() |
PHP & MySQL вопросы
вопросов наверно будет много
![]() пока окончательно созрел только один. есть база. надо вывести определенное количество строк (например 10) начиная с определенной (номер ее записан в переменной) вверх по таблице. Если че-нить непонятно, попробую объяснить ![]() |
![]() |
![]() |
# 2 |
::VIP::
Регистрация: 14.11.2001
Адрес: In dA HAus
Сообщения: 1 007
![]() ![]() |
добавление:
лучше это делать через цикл - в переменную поочереди чтобы записывались строки как массив и можно было бы в этом же цикле выводить определенные поля строки. Т.е вся проблема в функции доступа к базе. |
![]() |
![]() |
# 5 | |
::VIP::
Регистрация: 14.11.2001
Адрес: In dA HAus
Сообщения: 1 007
![]() ![]() |
Вчера, пока не прочитал ваши предложения придумал свое решение с помощью функции:
Цитата:
Это с помощью вашего запроса: PHP код:
PHP код:
В первом же варианте плохо, что вывод идет вниз по таблице начиная с определенной строчки и если вывод начать с несуществующей строки, то ничего не выйдет. Так будет при выводе последних записей. Я уже сам запутался ![]() Кстати, как проверить за сколько сгенерировалась страница? Я тогда сам и посмотрю что быстрее... |
|
![]() |
![]() |
# 6 |
::VIP::
Регистрация: 28.06.2002
Адрес: neverwhere
Сообщения: 1 166
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
вынимать каждый раз всю таблицу? чувак, да у тебя база шлёпнется при хоть сколько-то значительной нагрузке как котёнок с двадцатого этажа, даже и не мявкнет.
во первых. правильно узнать количество записей с минимальной затратой времени и ресурсов можно так: PHP код:
PHP код:
Последний раз редактировалось Aeon; 24.07.2003 в 12:37. |
![]() |
![]() |
# 9 |
::VIP::
Регистрация: 14.11.2001
Адрес: In dA HAus
Сообщения: 1 007
![]() ![]() |
Aeon
Спасибо.Да именно это я и хотел сделать. Меня тоже смущало постоянно вынимать базу, еще раз спасибо что подсказал как сделать ![]() Кстати, допустим у меня есть 18 записей, когда я перейду на вторую страницу архива $offset==20, как поведет себя скрипт - он же будет запршивать строки начиная с 20? Нормально себя ведет... ![]() Последний раз редактировалось d0rM03D; 24.07.2003 в 22:12. |
![]() |
![]() |
# 13 |
::VIP::
Регистрация: 14.11.2001
Адрес: In dA HAus
Сообщения: 1 007
![]() ![]() |
Aeon
Я малость переделал этот кусок кода, мне надо чтобы показывались ссылки на все страницы архива. В последствие хочу сделать сортировку и ссылки на строки( да что тут говорить, это будет скрипт новостей), на новости по месяцам года. Вот как я сделал. PHP код:
![]() А вот и вывод самих ссылок: PHP код:
Последний раз редактировалось d0rM03D; 25.07.2003 в 05:54. |
![]() |
![]() |
# 14 |
::VIP::
Регистрация: 28.06.2002
Адрес: neverwhere
Сообщения: 1 166
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
есть, конечно. floor() для округления вниз, ceil() для округления вверх. делаем так
PHP код:
|
![]() |
![]() |
# 15 |
::VIP::
Регистрация: 14.11.2001
Адрес: In dA HAus
Сообщения: 1 007
![]() ![]() |
Почти дописал систему администрирования новостей. ВОзник следующий вопрос.
Как лучше с точки зрения безопасности и быстродействия организовать эту систему: 1. Все скрипты (удаление, изменение etc.) засунуть в главный файл администрирования. В этом файле сделать ссылки на самого себя и в зависимости например от $QUERY_STRING или других переменных переданных GET'om уже производить действия. 2. Отличается от предыдущего что код скриптов удаления, изменения новостей etc. находиться в отдельных файлах. И в зависимости все от того же вставляеться includ'om. 3. Ссылки из основного файла будут вести не на самого себя, а на те скрипты передавая различные параметры все тем же Get'om. Или стоит сделать как-то иначе? И параллельно овзникает вопрос о том как лучше ограничить доступ к этим скриптам? .htaccess, сессии, coockies, 401? |
![]() |
![]() |
# 16 |
::VIP::
Регистрация: 28.06.2002
Адрес: neverwhere
Сообщения: 1 166
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
d0rM03D
imho, зависит от личного предпочтения больше чем от чего-либо другого. Для безопасности один вариант ничем не предпочтительнее другого - могу посоветовать лишь все переменные настроек (как то, паролями для базы, итд.) положить в отдельный файл вне www-директории и использовать include() с абсолютной тропой для того чтобы его включать - таким образом даже при какой-нибудь грубой ошибке никто не сможет получить прямой доступ к файлу с паролями и чувствительной инфой. Все запросы от пользователей хорошо бы проверять на соответствие ожиданиям - не очень хорошо давать им возможность как-то ввести произвольный исполнимый код в систему... но это уже зависит от обстоятельств. А так, флаг в руки. Тут где-то пробегала ссылочка от Programmer`a на книжку "Secure PHP Development", советую скачать и прочитать, там много чего интересного и полезного... А насчёт того держать в одном файле или в нескольких, по моему просто зависит от твоего личного удобства. В более сложных проектах (особенно если над проектом работает несколько человек) бывает удобнее разбить код на отдельные файлы - легче разбираться что отвечает за что. Если проект небольшой, можно всё сделать и одним файлом - главное всегда хорошо комментировать секции чтобы через пять месяцев вернувшись к коду можно было разобратся что к чему. А для прямого ограничения доступа в Апаче ничего проще и удобнее .htaccess/.htpasswd ещё не придумано. Сессии и кукисы, это хорошо если ты пишешь свою собственную систему опознания и регистрации пользователей, но если нужно лишь ограничить доступ на страничку администрации, обычно .htaccess/.htpasswd хватает с головой. Последний раз редактировалось Aeon; 03.08.2003 в 18:05. |
![]() |
![]() |
# 18 |
::VIP::
Регистрация: 28.06.2002
Адрес: neverwhere
Сообщения: 1 166
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
RaZEr
а что по твоему проще или удобнее? .htaccess/.htpasswd я могу настроить чтобы закрыть любую директорию на сервере меньше чем за пять минут... покажи мне какую-то систему которую я могу поставить так-же быстро... Я не говорю что это самый лёгкий метод для новичка, но если знаешь как это делается, он действительно самый быстрый и наименее трудоёмкий. |
![]() |
![]() |
# 20 |
::VIP::
Регистрация: 28.06.2002
Адрес: neverwhere
Сообщения: 1 166
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
RaZEr
пфф... я почти всегда разбиваю административную и клиентскую секции на независимые скрипты... потому что если что-то криво написано в твоей системе (тьфу-тьфу-тьфу, не к ночи будь сказано), человек сразу получает возможность всё редактировать... а так, если оно в отдельном скрипте в отдельной директории под .htpasswd, всё таки безопасность выше... о чём собственно и спрашивал наш уважаемый d0rM03D.... (а мы с тобой тут в оффтоп ударились |
![]() |