Войти

Показать полную графическую версию : Как сделать меню с помощью php и mysql...


FADE
03-07-2004, 03:26
Ребят, приведите плиз пример скрипта на пхп, чтобы менюшку вывел из базы...

vadimiron
03-07-2004, 15:54
Ну много всяких вариантов есть
Например при такой таблице в базе данных:
два столбца: первый-name(то есть то, что мы в меню будем видеть), второй-link(сама ссылка)


$sql=mysql_query("select*from menu");
for ($i=0; $i<mysql_num_rows($sql); $i++)
{
$menu=mysql_fetch_row($sql);
echo "<a href='".$menu[1]."'>".$menu[0]."</a><br>";
}


А вообще это зависит от дизайна базы данных и от дизайна самого меню.


Исправлено: vadimiron, 22:08 5-07-2004

Grinvich
04-07-2004, 13:31
Нечего мускул напрягать :) Пиши всё это дело в текстовый файл. И для сервера проще.  И для тебя - если вдруг база упадёт на сервере - сайт не рухнет вслед за ней.

FADE
04-07-2004, 16:29
Grinvich
хм, а для чего тогда mysql если его нагружать нельзя?)
интересно а на каком ето хостинге базы рухаются?:gigi:
можно делать тхт файлы как дополнение мне кажется, например or die("include('file.txt')") или чтонить в этом духе

Grinvich
04-07-2004, 16:33
FADE,

да, можно так.

Но всё-таки статьи лучше хранить в TXT а не в базе MySQL. Попробуй докажи обратное :)

Vlad Drakula
04-07-2004, 23:03
FADE
MySQL достаточно стабильная и не часто падает, а если палает то хостер достает бкап и все восстанавливает, но отккт это не самое страшное, самое страшное если сервер MySQL один а веб серверов много... вот тогда действительно плакать хочется.

для уточнения лучьше всего узнать у хостера тип сервера MySQL если под MySQL веделен отдельный сервер может показаться что это хорошо, но вы не один на хостинге... самое оптимальное решение это Апач и MySQL на одной машине, это позволяет значительно повысить скорость их взаимодействия и не нагружать сеть передачей информации.

Grinvich
TXT файлы это уже прошлое....
если нужно хранить меню то либо в INC либо в XML, это явязвно практически с любим видом информации, но иногда нужна именно база, так на пример для форума нужна исключительн обаза данных, но конечно есть движки форумов на текстовых файлах, но они не могут выдержать большой нагрузки.

представь сколько файлов на форуме...
( по несколько тысяч в дириктории)
это очень много, файловой системме сервера от такой нагрузки будет очень плохо!

FADE
05-07-2004, 03:12
Grinvich
ну а что тут собсно доказывать, вот я щас только что сайт свой из 46 статей-страничек забил в базу, и теперь у меня только на серваке index.php css.css и файл с доступом к базе вместо предыдущих 50 файликов со скриптами.

я ранбше тоже был мнения такого как и ты, пока базы не начал юзать, мне понравилось...:oszone:

Vlad Drakula
05-07-2004, 21:05
FADE
все определяется тем сколько страниц должен отработывать твой сайт в час, если у тебя сайт очень посещаемый то в отдельных файлах было бы на много быстрее, дело в том что нужно уметь грамотно совмещать базы и файлы ресурсов, тогда вам не будет равных в области создания сайтов которые будут выдерживать огромную нагрузку.

собственно сейчас пишу движок, скорость генереции страниц поднимается выше 10-20 страниц в секунду, но это может оказаться не достаточным!

когда вы начнете тестировать свои скрипты под нагрузкой у вас возникнут вопросы на котрые вы не сможете найти ответы ни в одной документации, а самое интересное то что вы потом удивитель что не все что написано в документациях по оптимизациях правда (!), иногда вам придется выбирать между тем что написано в книжке и выводами сделанными в результате тестировани, я уже все это прошол, и очень много дров наломал на пути.

mar
05-07-2004, 22:30
Vlad Drakula
Grinvich
извини, но ты немного путаешь разные вещи: отдельный сервер баз данных (что всегда считалось лучшим вариантом, так как сервер этот больше ничем (в том числе апачем) не занят, может спокойно кешировать в памяти запросы, как ему и положено и нагрузку на один сервер баз данных из множества сайтов (это и при бд на той же машине может получиться)
Что касается в чем держать текстовую информацию: в базе, или в отдельных файлах - тут (в отделе программирования) как-то уже обсуждалось (найду ссылку - выложу, а может, Prisoner вспомнит). К однозначным выводам, помнится, так и не пришли :)
В общем, в каждом конкретном случае надо решать отдельно, принимая во внимание множество моментов, в том числе и тип fs сервера (не все файловые сисиемы любят большое количество мелких файлов) и возможное количество этих самых файлов и т.д. (кстати скорость - именно один из аргументов за текстовые файлы вне зависимости от формата против бд)
FADE
вот я щас только что сайт свой из 46 статей-страничек забил в базу ну, это не объем :)

FADE
05-07-2004, 23:47
нужно уметь грамотно совмещать базы и файлы ресурсов


вот тут поподробней можно, давно пытаюсь на этот вопрос узнать ответ на этом форуме.......

Добавлено:

как тут на форуме тег цитирования пишется млин???!!.....

Добавлено:

цитата из поста Vlad Drakula ......

Исправлено: Vlad Drakula, 0:59 6-07-2004

Vlad Drakula
06-07-2004, 01:11
mar
дело в том что если сервер MySQL стоит отдельно, то хостер начитает им злоупотреблять в результате на несколько десятков апачей приходится один MySQL.

к тому же задержки при соединении и передаче мелких запросов на много меньше когда сервера стоят на одной машине, а о скорости обмена данными я и  не говорю, я все это на собственной шкуре проверял!

FADE
1) советую поситить http://forum.oszone.net/codes.html
2) если есть конкретный вопрос, то задавай, дело в том что читать целые лекции по архитектуре проекта я просто не в состоянии, да и многое тутже начнут спорить( у меня своеобразные методы достижения цели )

mar
08-07-2004, 00:16
Vlad Drakula
опять путаешь некорректное поведение хостера и реальные задачи серверов баз данных :)
задержки при соединении и передаче мелких запросов
опять-таки сеть должна быть нормально организована. Кроме того отдельные сервера баз данных, вообще-то не для мелких запросов, а для больших проектов с крупными транзакциями и запросами. В этом случае запрос, как уже говорилось, висит в памяти и выполняется максимально быстро (а память должна быть организована так, что во-первых, никакиими посторонними делами не заниматься (а апач - емкая по памяти  вещь), во-вторых может занимать максимально (но в разумных пределах) больше места. К запросам и программированию тоже стоит озвучить ряд требований: во-первых, максимально решать на уровне сервера баз данных (который должен быть организован... на коле мочало :)), во-вторых, запросы нужно максимально объединять, дабы не дергать сервер баз данных постоянной мелочевкой (+ PHP, раз уж мы тут в вебпрограммировании говорим, то речь чаще всего о нем не очень хорошо работает с массивами => опять-таки, максимально надо на БД переложить), ну, и ко всему вышесказанному - как средство - хранимые процедуры, которые, для postgres-а, напримерБ можно хоть на С писать, если требуется что-то быстро обсчитывать. Соответственно, хранимки - тоже на сервере БД вертятся.
Уфф. примерно так :) пардон за задержку с ответом - я сообщения с осзоны получаю на 2-е - третьи сутки.

Vlad Drakula
08-07-2004, 01:15
mar
да все это так, но у современных хостеров все по другому....

я считаю что один 4х процессорный сервер с Апачем и MySQL и 4ГБ памяти лучьше чем два 2х процессорных с 2ГБ памяти.

как бы хорошо не была организована сеть, все равно потери в сети на много больше чем когда все на одном компе.

к сожалению у большенства хостеров только MySQL иногда даже версии 3.* так что о соединении нескольких запросов в один можно забыть!

Добавлено:

на счет почты работаем.... надеюсь в понедельник придет уже вовремя!

mar
08-07-2004, 09:21
я считаю что один 4х процессорный сервер с Апачем и MySQL и 4ГБ памяти лучьше чем два 2х процессорных с 2ГБ памяти
ну, это ты сходи в *nix и с Barracud-ой обсуди, или на opennet, там совсем много сисадминов и хостеров в том числе :biggrin:  
А если серьезно, то как только проект вырастает из пеленок и становится более-менее большим, приходится думать о своем серваке, на худой конец в jail-е, но тогда уже и правила игры будут другими.

mar
08-07-2004, 12:24
кстати, по поводу иллистрации к занятости памяти (а это основное). Зайди по ssh на тот же сервер, на котором хостится твой сайт и дай команду top
Могу привести листинг (в качестве информации к размышлению :)) (с него же. Там стоит sun)

load averages: *2.55, *2.57, *3.00 * * * * * * * * * * * * 12:12:27
97 processes: *94 sleeping, 1 running, 1 stopped, 1 on cpu
CPU states: 51.6% idle, 30.2% user, 16.4% kernel, *1.8% iowait, *0.0% swap
Memory: 2048M real, 1001M free, 1361M swap in use, 4172M swap free

* PID USERNAME THR PRI NICE *SIZE * RES STATE * *TIME * *CPU COMMAND
*7980 bests * * *1 *59 * *0 5808K 5448K sleep * *0:00 *1.07% links.cgi
15596 mysql * * *6 *59 * *0 * 61M * 16M sleep * 46.4H *0.75% mysqld
28347 root * * *72 *59 * *0 *160M *113M sleep *281:28 *0.63% java
17602 root * * * 1 *49 * *0 9248K 6272K sleep * 85:52 *0.53% button.fcgi
17616 root * * * 1 *59 * *0 9248K 6280K sleep * 87:15 *0.49% button.fcgi
21859 root * * * 1 *59 * *0 *255M * 55M sleep * *0:01 *0.48% httpd
17529 root * * * 1 *59 * *0 9248K 6272K sleep * 86:15 *0.48% button.fcgi
20980 root * * * 1 *59 * *0 *257M * 70M sleep * *0:03 *0.36% httpd
21026 root * * * 1 *59 * *0 *256M * 66M sleep * *0:03 *0.33% httpd
*8033 root * * * 1 *39 * *0 *230M * 22M sleep * *0:00 *0.29% httpd
21012 root * * * 1 *54 * *0 *257M * 67M sleep * *0:03 *0.28% httpd
*2883 root * * * 1 *59 * *0 *232M * 36M sleep * *0:01 *0.27% httpd
*7456 это я * * *1 *59 * *0 2360K 1640K cpu/2 * *0:00 *0.26% top
21027 root * * * 1 *59 * *0 *259M * 73M sleep * *0:04 *0.25% httpd
20972 root * * * 1 *59 * *0 *257M * 70M sleep * *0:04 *0.23% httpd
*7833 raneva * * 1 *59 * *0 *283M * 97M sleep * *0:00 *0.20% httpd
*2153 root * * * 1 *59 * *0 *232M * 40M sleep * *0:01 *0.20% httpd
*7191 root * * * 1 *59 * *0 *230M * 25M sleep * *0:00 *0.19% httpd
*7349 root * * * 1 *59 * *0 *229M * 21M sleep * *0:00 *0.16% httpd
20976 root * * * 1 *59 * *0 *257M * 70M sleep * *0:04 *0.13% httpd
*8013 root * * * 1 *59 * *0 *228M 6312K sleep * *0:00 *0.09% httpd
21875 root * * * 1 *59 * *0 *283M * 97M sleep * *0:03 *0.09% httpd
*7150 root * * * 1 *59 * *0 6920K 4176K sleep * *0:00 *0.09% sshd
*6912 root * * * 1 *59 * *0 6872K 4120K sleep * *0:00 *0.07% proftpd
20971 root * * * 1 *59 * *0 *228M 3672K sleep * *0:00 *0.05% httpd
20969 root * * * 1 *59 * *0 *228M * 19M run * * *0:03 *0.04% httpd
*7979 bests * * *1 *59 * *0 *256M * 66M sleep * *0:00 *0.03% httpd
* * 1 root * * * 1 *59 * *0 1968K *384K sleep * 27:51 *0.02% init
18890 root * * *37 *59 * *0 5312K 2816K sleep * 15:07 *0.02% nscd
*7413 это я * * *1 *59 * *0 2520K 1872K sleep * *0:00 *0.02% bash
12772 root * * * 5 *59 * *0 2488K 1456K sleep * 41:25 *0.01% syslog-ng
18086 smsporta * 1 *53 * *2 8504K 5704K sleep * *0:09 *0.01% esme_manager

Vlad Drakula
08-07-2004, 18:34
mar
я предлагаю сделать тему для обсуждения железа для вебмастара там мы и обсудим что, как, для чего и почему ?!

mar
08-07-2004, 19:13
мне кажется, это скорее вопрос по конфигурации серверов,  но офтоп разводить больше не буду - тут ты прав :)

Vlad Drakula
08-07-2004, 19:19
все гому интересна тема конфигурации серверов, сюда:
http://forum.oszone.net/topic.cgi?forum=20&topic=1049




© OSzone.net 2001-2012