Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Переделать файловое меню в меню с использованием базы данных
 
 автор: Sywooch   (15.04.2006 в 15:09)   письмо автору
 
 

Недопру как можно подобную функцию переделать, чтоб меню доставать из базы?

Это функция меню!

<?
// функция построения меню
 
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 .= "&nbsp;{$pre_link}&nbsp;<A HREF=\"{$url}\">{$name}</A><br>";
        
//Закончили теперь запишем результат в переменную
    
}
    return 
$menu;
}
?>


Это содержание файла со ссылками с названием например "mine_menu"
(можно без розширения)


Yandex::http://ya.ru;
Rambler::http://r0.ru;


Выводим так:


<?
function menu_print(mine_menu);
?>

   
 
 автор: Anwor   (15.04.2006 в 15:14)   письмо автору
 
   для: Sywooch   (15.04.2006 в 15:09)
 

А в базе что, должна быть 1 колонка с полями, содержащими "Что-то::http://что-то.ru;"? Смысл какой?

   
 
 автор: Sywooch   (15.04.2006 в 15:30)   письмо автору
 
   для: Anwor   (15.04.2006 в 15:14)
 

Смысл такой.
В базе:
В таблице меню:
Поля
----------------------------------
ID | LINK | NAME | HIDE
----------------------------------

А функция должна брать содержимое вставлять его куда надо и создавать кнопочки!

   
 
 автор: Sywooch   (16.04.2006 в 03:25)   письмо автору
 
   для: Sywooch   (15.04.2006 в 15:30)
 

Не игнорируем!

   
 
 автор: babilonian   (16.04.2006 в 03:44)   письмо автору
 
   для: Sywooch   (16.04.2006 в 03:25)
 

Насколько я могу судить читая код, то функция menu_print(mine_menu); должна получать в итоге массив. Это так?
Кстати, выводить лучше так:

$menuarray=menu_print(mine_menu);
foreach($menuarray  as $menu)
   {
   echo"$menu";
   }

   
 
 автор: Sywooch   (16.04.2006 в 03:49)   письмо автору
 
   для: babilonian   (16.04.2006 в 03:44)
 

Да массив.
А чем лучше ваш вариант?

Нет идей подобной схемы но с базой?

   
 
 автор: babilonian   (16.04.2006 в 03:52)   письмо автору
 
   для: Sywooch   (16.04.2006 в 03:49)
 

Что Вы имеете ввиду под словом "база"? Мускул, постгрейдж, файлы - все это базы. Вопрос в том, в какой из них лучше хранить информацию..

   
 
 автор: Sywooch   (16.04.2006 в 04:01)   письмо автору
 
   для: babilonian   (16.04.2006 в 03:52)
 

Я использую мускул.

   
 
 автор: babilonian   (16.04.2006 в 04:12)   письмо автору
 
   для: 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 с помощью банального

showmenu();

Да, в начало функции надо инфу включить для доступа к базе. Логин, тап пароли. Писать лениво)))

   
 
 автор: Sywooch   (16.04.2006 в 18:07)   письмо автору
 
   для: 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/ может кому надо.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования