Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Динамическое меню php / 24 сообщений из 24, страница 1 из 1
06.06.2012, 11:53:56
    #37827270
K.S.A.81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
Добрый день, возник вопрос, есть ли смысл использовать динамическое меню с одним вложением php+MySQL или просто в HTML написать.
В первом варианте я использую две таблицы: в первой таблице основное меню, во второй таблице строка подменю и ключ для первой таблицы. Идея создать ассоциативный массив из двух таблиц и затем выводить на экран результат.

У меня возникли сомнению по поводу нужно ли это все, с одной стороны, я могу менять свою "менюшку" изменив только строки таблицы в базе, но с другой стороны при таком подходе будет задержки. Если использовать HTML то менять "менюшку" нужно в коде.
Если все-таки вариант динамический, может кто посоветует алгоритм.
...
Рейтинг: 0 / 0
06.06.2012, 12:03:36
    #37827289
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
K.S.A.81,

если у тебя будет какая то админка по изменению всего этого делай через базу. А если меню небольшое вынеси в отдельный файл и инклудь где надо.
...
Рейтинг: 0 / 0
06.06.2012, 13:23:16
    #37827519
artas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
K.S.A.81В первом варианте я использую две таблицы: в первой таблице основное меню, во второй таблице строка подменю и ключ для первой таблицы.
а если появится еще одно подменю опять таблицу добавите ?
Это все можно хранить в одной таблице, смотрите в сторону id parent_id или nested sets
...
Рейтинг: 0 / 0
06.06.2012, 13:35:04
    #37827555
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
K.S.A.81с одной стороны, я могу менять свою "менюшку" изменив только строки таблицы в базе, но с другой стороны при таком подходе будет задержки.Используйте кеш для хранения готового меню. Не каждый же день/час меняете набор пунктов.
...
Рейтинг: 0 / 0
06.06.2012, 17:13:53
    #37828079
K.S.A.81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
artas,

допустим будет таблица id, title, parent_id
1 Main
2 Parent_1 null
3 Parent_2 null
4 Parent_3 Null
5 Child_1 2
6 Child_2 2
7 Child_3 2
8 Child_4 3

как тогда сделать правильную выборку для создания меню, я так подозреваю, что в результате я должен получит ассоциативный массив, из которого потом получить меню дело техники.
...
Рейтинг: 0 / 0
06.06.2012, 17:17:59
    #37828094
K.S.A.81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
vkle,

Я думал над этим, просто хотелось узнать что предпочтительнее.
...
Рейтинг: 0 / 0
06.06.2012, 17:57:07
    #37828182
artas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
K.S.A.81,

так как меню относительно небольшое (врядли больше 1000 пунктов). Достается "селект * фром таблица_меню".
Далее, преобразовываем на клиенте, например этим алгоритмом в дерево..... Profit
...
Рейтинг: 0 / 0
06.06.2012, 18:06:22
    #37828197
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
K.S.A.81vkle,

Я думал над этим, просто хотелось узнать что предпочтительнее.Вариантов много. Можно при изменениях, связанных с меню, через админку генерить файл. В смысле, при сохранении изменений. Это самый простой способ. Можно проверять дату создания файла, и, если прошло более, скажем, суток, то генерить новый. Еще можно по крону запускать обновление файла, но это, скорее всего, уже излишне сложно.
...
Рейтинг: 0 / 0
07.06.2012, 18:38:34
    #37830076
K.S.A.81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
хочу поделиться тем, что у меня получилось
+----+----------------------+-----------+
| id | title | parent_id |
+----+----------------------+-----------+
| 1 | Гланая | NULL |
| 2 | Офисное ПО | NULL |
| 3 | Системное ПО | NULL |
| 4 | Средства Связи | NULL |
| 5 | Операционные системы | NULL |
| 6 | Браузеры | 4 |
| 7 | Почта | 4 |
| 8 | Торенты | 4 |
| 9 | Общие | 4 |
| 10 | Безопасность | NULL |
| 11 | Антивирусы | 10 |
| 12 | АнтиСпам | 10 |
+----+----------------------+-----------+
...
Рейтинг: 0 / 0
07.06.2012, 18:59:45
    #37830105
K.S.A.81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
Из таблицы получил массив:
[0] => Array
(
[id] => 1
[title] => Гланая
[parent_id] =>
)
[1] => Array
(
[id] => 2
[title] => Офисное ПО
[parent_id] =>
)
[2] => Array
(
[id] => 3
[title] => Системное ПО
[parent_id] =>
и т.д. ===========================================
и затем с помощью вот такого цикла
===========================================
foreach($arr as $n => $m)
{
if (!$m['parent_id'])
$arr_menu[$m['id']]['title']=$m['title'];
if ($m['parent_id'])

$arr_menu[$m['parent_id']]['children'][]=$m['title'];
}
===========================================
получил
[1] => Array
(
[title] => Гланая
)

[2] => Array
(
[title] => Офисное ПО
)
[3] => Array
(
[title] => Системное ПО
)
[4] => Array
(
[title] => Средства Связи
[children] => Array
(
[0] => Браузеры
[1] => Почта
[2] => Торенты
[3] => Общие
)
ну, а таким массивом уже можно строить меню, я так понимаю по такому же принципу можно и 3-х уровневое меню строить.
...
Рейтинг: 0 / 0
08.06.2012, 11:17:12
    #37830688
artas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
K.S.A.81,

я кому кинул ссылку на преобразование в дерево ?????
...
Рейтинг: 0 / 0
21.06.2012, 20:10:24
    #37849225
Timoha21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
Всем доброго времени суток.Возможно ли создать динамическое list\menu в поле динамически построенной таблицы?Если да то как
...
Рейтинг: 0 / 0
22.06.2012, 08:59:42
    #37849640
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
Timoha21,

Подробнее опиши с примером желательно
...
Рейтинг: 0 / 0
22.06.2012, 14:44:13
    #37850370
Timoha21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
SharuPoNemnogu,
Создаем динамическую таблицу вот так:
<?php
echo '<table width="555" border="1">';
echo '<tr>
<th width="100" scope="col">ID</th>
<th width="271" scope="col">FIO</th>
<th width="131" scope="col">DR </th>
<th width="100" scope="col">Telefon</th>
<th width="131" scope="col">Adres </th>
<th width="271" scope="col">Doljnost</th>
<th width="100" scope="col">Consultant </th>
<th width="131" scope="col">Dop.Information</th>
</tr>';

include "config.php";
$query= "SELECT IDclient,name_client,DATE_FORMAT(dr,'%d.%m.%Y') AS dr,telefon,adres,work,IDconsul,dopinfo FROM clients";//}
$cat= mysql_query($query);
while ($row = mysql_fetch_assoc($cat))
{

echo "<tr>
<td>".$row ['IDclient']."</td>
<td>".$row ['name_client']."</td>
<td>".$row ['dr']."</td>
<td>".$row ['telefon']."</td>
<td>".$row ['adres']."</td>
<td>".$row ['work']."</td>
<td>".$row ['IDconsul']."</td>
<td>".$row ['dopinfo']."</td>
</tr>";
}
echo "</table>";
?>
Получили табличку, а теперь необходимо сделать эту табличку с дополнительным столбцом? содержащим компонент формы допустим list\menu.
не могу догнать как это сделать(((
...
Рейтинг: 0 / 0
22.06.2012, 15:51:16
    #37850550
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
Timoha21,

1. Используйте тег SRC для оформления кода.
2. Не понятно, откуда должен браться этот list\menu.
...
Рейтинг: 0 / 0
22.06.2012, 15:58:16
    #37850567
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
Timoha21,

А че сразу в цикле не вариант вставлять? Можно еще яваскриптом попробовать. Но сразу лечше.
...
Рейтинг: 0 / 0
22.06.2012, 17:45:29
    #37850833
Timoha21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
SharuPoNemnogu,

конечно в цикле и сразу, это не вызывает сомнений. проблема в синтаксисе((
вот наш list\menu:
<select name="menu1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>


Вот наш цикл
while ($row = mysql_fetch_assoc($cat))
{

echo "<tr>
<td>".$row ['IDclient']."</td>
<td>".$row ['name_client']."</td>
<td>".$row ['dr']."</td>
<td>".$row ['telefon']."</td>
<td>".$row ['adres']."</td>
<td>".$row ['work']."</td>
<td>".$row ['IDconsul']."</td>
<td>".$row ['dopinfo']."</td>
<td>"КАК СЮДА ВСТАВИТЬ НАШЕ МЕНЮ???</td>
</tr>";
}
всяко пробовал, ну никак не получается
...
Рейтинг: 0 / 0
22.06.2012, 17:52:30
    #37850851
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
Timoha21,

А меню одинаковое или отличается чем то?
Если одинаковое то вот так:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
<?php


echo '<table width="555" border="1">';
echo '<tr>
<th width="100" scope="col">ID</th>
<th width="271" scope="col">FIO</th>
<th width="131" scope="col">DR </th>
<th width="100" scope="col">Telefon</th>
<th width="131" scope="col">Adres </th>
<th width="271" scope="col">Doljnost</th>
<th width="100" scope="col">Consultant </th>
<th width="131" scope="col">Dop.Information</th>
</tr>';

include "config.php";
$query= "SELECT IDclient,name_client,DATE_FORMAT(dr,'%d.%m.%Y') AS dr,telefon,adres,work,IDconsul,dopinfo FROM clients";//}
$cat= mysql_query($query);
while ($row = mysql_fetch_assoc($cat))
{

echo "<tr>
<td>".$row ['IDclient']."</td>
<td>".$row ['name_client']."</td>
<td>".$row ['dr']."</td>
<td>".$row ['telefon']."</td>
<td>".$row ['adres']."</td>
<td>".$row ['work']."</td>
<td>".$row ['IDconsul']."</td>
<td>".$row ['dopinfo']."</td>
<td><select name=\"menu1\">
<option value=\"1\">1</option>
<option value=\"2\">2</option>
<option value=\"3\">3</option>
<option value=\"4\">4</option>
</select></td>
</tr>";

}
echo "</table>";
?>



в чем проблема то?
...
Рейтинг: 0 / 0
22.06.2012, 17:55:17
    #37850859
Timoha21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
SharuPoNemnogu,)))
с головой вероятно, а насчет меню так не важно отличается или нет.спасибо))
...
Рейтинг: 0 / 0
22.06.2012, 17:56:32
    #37850861
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
Timoha21,

Это прикол такой был?) Я ниче не понял. Но пожалуйста)
...
Рейтинг: 0 / 0
12.07.2012, 16:32:01
    #37876936
Timoha21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
SharuPoNemnogu, а если нам надо сделать это меню с заполнением из базы пусть например будет консультант(IDcon,namecon)
то как в данной ситуации поступить?
...
Рейтинг: 0 / 0
12.07.2012, 17:57:09
    #37877126
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
Timoha21,

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
echo "<tr>
<td>".$row ['IDclient']."</td>
<td>".$row ['name_client']."</td>
<td>".$row ['dr']."</td>
<td>".$row ['telefon']."</td>
<td>".$row ['adres']."</td>
<td>".$row ['work']."</td>
<td>".$row ['IDconsul']."</td>
<td>".$row ['dopinfo']."</td>
<td><select name=\"menu".$row ['IDclient']."\">";
$q= "SELECT IDcon,namecon FROM consultant";//}
$a= mysql_query($q);
while ($a = mysql_fetch_assoc($q))
{
echo "<option value=\"".$a['IDcon']."\">".$a['namecon']."</option>";
}
echo "</select></td>
</tr>";

}




к примеру так, если правильно понял. Но если они одинаковые, сразу вытащи всех консультантов чтобы запросов кучу не плодить.
...
Рейтинг: 0 / 0
12.07.2012, 17:59:41
    #37877133
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
SharuPoNemnogu,

Код: php
1.
2.
3.
4.
while ($f = mysql_fetch_assoc($a))
{
echo "<option value=\"".$f['IDcon']."\">".$f['namecon']."</option>";
}


ошибочка
...
Рейтинг: 0 / 0
13.07.2012, 10:27:51
    #37877709
Timoha21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое меню php
SharuPoNemnogu,спасибо, а то я в этих знаках препинания все время путаюсь)
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Динамическое меню php / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]