|
|
|
| Недопру как можно подобную функцию переделать, чтоб меню доставать из базы?
Это функция меню!
<?
// функция построения меню
function menu_print($source)
{
$menu = '';
$meny = file($source);
foreach ($meny as $row)
{
// разделителем в меню является :: типа (имя ссылки::url;)
$p_row = explode("::",$row);
$name = stripcslashes($p_row[0]);
$url = stripcslashes($p_row[1]);
//Начинаем собирать кнопку меню
$menu .= " {$pre_link} <A HREF=\"{$url}\">{$name}</A><br>";
//Закончили теперь запишем результат в переменную
}
return $menu;
}
?>
|
Это содержание файла со ссылками с названием например "mine_menu"
(можно без розширения)
Yandex::http://ya.ru;
Rambler::http://r0.ru;
|
Выводим так:
<?
function menu_print(mine_menu);
?>
|
| |
|
|
|
|
|
|
|
для: Sywooch
(15.04.2006 в 15:09)
| | А в базе что, должна быть 1 колонка с полями, содержащими "Что-то::http://что-то.ru;"? Смысл какой? | |
|
|
|
|
|
|
|
для: Anwor
(15.04.2006 в 15:14)
| | Смысл такой.
В базе:
В таблице меню:
Поля
----------------------------------
ID | LINK | NAME | HIDE
----------------------------------
А функция должна брать содержимое вставлять его куда надо и создавать кнопочки! | |
|
|
|
|
|
|
|
для: Sywooch
(15.04.2006 в 15:30)
| | Не игнорируем! | |
|
|
|
|
|
|
|
для: Sywooch
(16.04.2006 в 03:25)
| | Насколько я могу судить читая код, то функция menu_print(mine_menu); должна получать в итоге массив. Это так?
Кстати, выводить лучше так:
$menuarray=menu_print(mine_menu);
foreach($menuarray as $menu)
{
echo"$menu";
}
|
| |
|
|
|
|
|
|
|
для: babilonian
(16.04.2006 в 03:44)
| | Да массив.
А чем лучше ваш вариант?
Нет идей подобной схемы но с базой? | |
|
|
|
|
|
|
|
для: Sywooch
(16.04.2006 в 03:49)
| | Что Вы имеете ввиду под словом "база"? Мускул, постгрейдж, файлы - все это базы. Вопрос в том, в какой из них лучше хранить информацию.. | |
|
|
|
|
|
|
|
для: babilonian
(16.04.2006 в 03:52)
| | Я использую мускул. | |
|
|
|
|
|
|
|
для: Sywooch
(16.04.2006 в 04:01)
| | Ну таки все просто вот эту структуру: ID | LINK | NAME | HIDE переноси в таблицу. А оттуда потом уже читай стандартным способом
function showmenu()
{
$result = mysql_query("SELECT * FROM menu");
while ($row = mysql_fetch_array($result))
{
echo"<a href=\"?id=$row[1]\">$row[2]</a><br>";
}
}
|
И собственно все. Вывод меню bltn с помощью банального
Да, в начало функции надо инфу включить для доступа к базе. Логин, тап пароли. Писать лениво))) | |
|
|
|
|
|
|
|
для: babilonian
(16.04.2006 в 04:12)
| | Спасибо тебе.
Но так как меню обычно не одно!
А заводить несколько таблиц и темболее клонировать функции
нехочеться то немного твою функцию подлампичил :)
Только структура таблици в базе во какая!
id * name * link * menu * hide
Где "$menu" это и есть сортировочная переменная. (если мона так выразиться)
<?
function showmenu($menu)
{
global $dbserver, $dbuser, $dbpasswd, $dbname;
mysql_connect("$dbserver", "$dbuser", "$dbpasswd");
mysql_select_db("$dbname");
mysql_query("SET NAMES 'cp1251'");
$result = mysql_query("SELECT * FROM menu WHERE menu = '$menu'");
while ($row = mysql_fetch_array($result))
{
$buttons .= "<a href=\"$row[2]\">$row[1]</a><br>";
}
return $buttons;
}
?>
|
А вызываем это дело так:
showmenu(mine);
// "mine" это значение сортировочной переменной.
showmenu(sub);
// "sub" это значение сортировочной переменной.
|
PS/ может кому надо. | |
|
|
|