@historydev
Острая аллергия на анимешников

Как правильно вывести меню из бд?

Доброе утро.Помогите пожалуйста.Уже несколько часов грею голову,не понимаю как вывести меню.
У меня есть вот такой скрипт на данный момент,он находит все совпадающие подпункты и выводит их массивами.В последствии мне нужно выводить текст под этими id
parent_id - id подпунктов
id - id пунктов
title - текст пунктов

connection.query("SELECT * FROM menu", function(err,res){
		const menu = res.map(list => list)

		for(i=0; i<menu.length; i++) {
			connection.query("SELECT * FROM menu WHERE parent_id = '"+menu[i].id+"'", function(err,res){
				
			})
		}

	})


5db79feb003d0277675376.png
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега Node.js
Crazy on performance...
connection.query('SELECT * FROM menu', (err, result) => {
  if(err) {
    console.error(err);
    return;
  }
  const index = result.reduce((acc, row) => ({...acc, [row.id]: row}), {});
  const menu = [];
  for(const row of result) {
    if(row.parent_id === 0) {
      menu.push(row);
      continue;
    }
    const parent = index[row.parent_id];
    if(!parent) {
      console.warn(`Undefined parent with id ${row.parent_id}`);
      continue;
    }
    if(!parent.children) {
      parent.children = [];
    }
    parent.children.push(row);
  }
  console.log(menu);
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы