• Как подключиться к базе по ssh в PhpStorm?

    @Dataparser
    Такая же проблема. Однако, если использовать авторизацию по ключу, то работает.
    Ответ написан
    1 комментарий
  • Как написать форму для добавления пункта меню на страницу, на php?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    Не самая простая задача для новичка, давай разберем по порядку что тебе надо сделать.
    1) тебе надо как-то хранить список категорий и их ссылок
    2) тебе надо получить структуру меню в переменную
    3) тебе надо построить само меню

    Я исхожу из того, что хранить информацию о меню ты будешь в базе.

    Пусть в базе будет две таблицы:
    menu_category
    ~~~~~~~
    id
    name
    order
    
    menu_items
    ~~~~~~~~~~~
    id
    menu_category_id
    name
    url
    order

    дальше, ты примерно вот таким запросом получаешь все пункты меню
    SELECT 
    	`c`.`id` as `id`,
    	`c`.`name` as `name`,
    	`i`.`id` as `item_id`,
    	`i`.`name` as `item_name`,	
    	`i`.`url` as `item_url`
    FROM `menu_category` as `c` 
    LEFT JOIN `menu_items` as `i` ON `i`.`menu_category_id`=`c`.`id` 
    ORDER BY `c`.`order`, `i`.`order`

    теперь группируем результаты по id категории тем самым получая удобную структуру для формирования меню
    $menu = [];
    foreach ($results as $res) {
    	$menu[$res['id']]['name'] = $res['name'];
    	$menu[$res['id']]['items'][] = [
    		'name' => $res['item_name'],
    		'url' => $res['item_url'],
    	]
    }

    в результате имеем массив с такой структурой:
    [1]=>[
    	'name' => 'Категория 1',
    	'items' => [
    		['name'=>'Ссылка 11', 'url'=>'http://site11.ru'],
    		['name'=>'Ссылка 12', 'url'=>'http://site12.ru'],	
    	]
    ],
    [2]=>[
    	'name' => 'Категория 2',
    	'items' => [
    		['name'=>'Ссылка 21', 'url'=>'http://site21.ru'],
    		['name'=>'Ссылка 22', 'url'=>'http://site22.ru'],	
    	]
    ],

    теперь осталось все это вывести, используем такой код
    echo '<ul>';
    foreach($menu as $catId=>$cat) {
    	echo '<li>'.$cat['name'];
    	if (isset($cat['items'])) {
    		echo '<ul>';
    		foreach($cat['items'] as $item) {
    			echo '<li><a href="'.$item['url'].'">'.$item['name'].'</a></li>';
    		}
    		echo '</ul>';
    	}
    	echo '</li>';
    }
    echo '</ul>';


    вот и всё, осталось написать формы для добавления данных в соответствующие таблицы бд
    Ответ написан
    7 комментариев