Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
-4 / 1 / 0
Регистрация: 14.06.2022
Сообщений: 33

Как вывести из БД список, поделить его на категории и разместить в разных div

21.02.2023, 13:57. Показов 2099. Ответов 24
Метки item, php (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Возникла необходимость вывести с базы разбитый на три раздела(категории) список и раскидать это по блокам. Проблема в том, что я не представляю себе как это сделать.

На сайте подключен пример вывода списка, который я выложу ниже. Есть две таблицы "articles" и "menu". menu содержит в себе разделы: "id, name, href, position", а articles заголовки статей: "id, date, author, title, text, cat".

Я пытаюсь сделать так, чтобы строки из articles выводились в зависимости от категории из menu по шаблону allcontent.html.
Есть идея соединить таблицы через запрос INNER JOIN и вывести с помощью массива, но как это грамотно сделать? Помогите пожалуйста.

allcontent.html
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<<!--из категории автомобилей-->
[_while]
        <li class="hs__item item" onclick="location.href='main.php';"> 
          <div class="hs__item__image__wrapper"><img class="hs__item__image" src="https://picsum.photos/id/112/300/300" alt=""/></div>
          <div class="hs__item__description"><span class="hs__item__title">[_title]</span><span class="hs__item__subtitle">[_author]</span><span><a style="font-weight:100;" href="php/eddform.php?page=edd_content&id=[_id]">ред.</a><a style="font-weight:100;" href="?page=edd_content&del_post=[_id]"><img src="img/del.jpg" border="0px"></a></span></div>
        </li>
        [_while]
 
<<!--из категории природы-->
[_while]
        <li class="hs__item item" onclick="location.href='main.php';"> 
          <div class="hs__item__image__wrapper"><img class="hs__item__image" src="https://picsum.photos/id/112/300/300" alt=""/></div>
          <div class="hs__item__description"><span class="hs__item__title">[_title]</span><span class="hs__item__subtitle">[_author]</span><span><a style="font-weight:100;" href="php/eddform.php?page=edd_content&id=[_id]">ред.</a><a style="font-weight:100;" href="?page=edd_content&del_post=[_id]"><img src="img/del.jpg" border="0px"></a></span></div>
        </li>
        [_while]
 
<<!--из категории стран-->
[_while]
        <li class="hs__item item" onclick="location.href='main.php';"> 
          <div class="hs__item__image__wrapper"><img class="hs__item__image" src="https://picsum.photos/id/112/300/300" alt=""/></div>
          <div class="hs__item__description"><span class="hs__item__title">[_title]</span><span class="hs__item__subtitle">[_author]</span><span><a style="font-weight:100;" href="php/eddform.php?page=edd_content&id=[_id]">ред.</a><a style="font-weight:100;" href="?page=edd_content&del_post=[_id]"><img src="img/del.jpg" border="0px"></a></span></div>
        </li>
        [_while]
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
//ФУНКЦИЯ ВЫВОДА СПИСКА
function allcontent()//Функция вывода списка постов
{
$sm_read = file("php/templates/allcontent.html");//...подключаем шаблон
$sm_read = implode("",$sm_read);//функция file() возвращаем массив, поэтому склеиваем его
preg_match("/\[_while\](.*?)\[_while\]/s",$sm_read,$tamp_while);//Находим в шаблоне тут часть, которую будет ду вайлить
 
//Выводим из базы данных посты
$result_index = R::getAll("SELECT id,author,title,cat FROM articles ORDER BY id DESC");
foreach ($result_index as $myrow_index)
{
    
    if($myrow_index != "")//Проверяем есть ли в базе данных записи
    {//Если есть...
        if($myrow_index['cat'] != 0)
        {
            $result_cat = R::getAll("SELECT name FROM menu WHERE id='$myrow_index[cat]'");//Выводим из базы имя пункта
            foreach ($result_cat as $myrow_cat)
            {
                $name_cat = $myrow_cat['name'];
            }
        }
        else $name_cat = "Нет категории";
 
        $copy_tamp = $tamp_while[1];//Сохраняем ту часть которая будет повторяться в отдельную переменную
        //Делаем замены код-слов
        $copy_tamp = str_replace("[_title]",$myrow_index['title'],$copy_tamp);//Название поста
        $copy_tamp = str_replace("[_author]",$myrow_index['author'],$copy_tamp);//Автор
        $copy_tamp = str_replace("[_id]",$myrow_index['id'],$copy_tamp);//ID постов
        $copy_tamp = str_replace("[_cat]",$name_cat,$copy_tamp);//Имя категории
 
 
        $list .= $copy_tamp;//Объединяем результат в одну переменную
    }
    else $sm_read = "<p align='center'>Нет пользователей</p>";//Если записей нет, то вывести это сообщение
}
    
$sm_read = preg_replace("/\[_while\].*?\[_while\]/s",$list,$sm_read);//Вставляем в шаблон список постов
return $sm_read;//Выводим с генерированный html код
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.02.2023, 13:57
Ответы с готовыми решениями:

Как поделить число и вывести его на экран?
как поделить число и вывести его на экран (fasm),написал код но не получается программа выдает ошибку ;lab_1 var 12/ex_2 format PE...

Как поделить категории на 2 столбца?
Не понимаю, как это исправить:(

Как вывести список категории новостей на sidebar?
У меня есть код: &lt;div class=&quot;side-block&quot;&gt; &lt;div class=&quot;head&quot;&gt;&lt;h4&gt;Категории&lt;/h4&gt;&lt;/div&gt; &lt;ul style=&quot;margin: 10px...

24
132 / 76 / 16
Регистрация: 08.07.2022
Сообщений: 309
24.02.2023, 09:28
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Ra1s Посмотреть сообщение
У меня трудности с адаптацией кода в шаблонизатор
Что за шаблонизатор?

Добавлено через 1 минуту
smarty \ twig \ tpl \ laravel \ mustache \ volt ?Или какой другой
0
-4 / 1 / 0
Регистрация: 14.06.2022
Сообщений: 33
24.02.2023, 12:34  [ТС]
xkkx, да простой самодельный. Всё что для вывода из базы лежит в этом маленьком коде+ orm redbean
0
132 / 76 / 16
Регистрация: 08.07.2022
Сообщений: 309
24.02.2023, 17:32
Цитата Сообщение от Ra1s Посмотреть сообщение
да простой самодельный.
Так это никакой не шаблонизатор. И архитектура выбрана не лучшим способом, даже отвратная реализация.
0
-4 / 1 / 0
Регистрация: 14.06.2022
Сообщений: 33
24.02.2023, 17:55  [ТС]
xkkx, ну я как бэ вообще далек по специальности от php программирования. Как могу так и реализую и по ходу дела учусь. Мне главное результат, а не красиво оформленный код по современным представлениям его реализации
0
132 / 76 / 16
Регистрация: 08.07.2022
Сообщений: 309
24.02.2023, 18:36
Цитата Сообщение от Ra1s Посмотреть сообщение
Мне главное результат, а не красиво оформленный код по современным представлениям его реализации
По сути тебе нужен HTML каркас. И потом идти в тему JS что бы спросить у людей как правильно делать запросы на сервер с помощью ajax или fetch. И выводить данные уже в блоки.

Данная задача очень легко делается за считанные минуты, имея нормальный HTML каркас, а не кашу непонятно из чего.

Т.е изначально надо было продумать архитектуру визуальную, и то как с ней будут взаимодействовать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.02.2023, 18:36

Как растянуть основной div до футера и разместить текст ровно центру этого div?
Всем привет, решил попробовать создать простейший резиновый сайт и чтобы футер был привязан внизу, чтобы не писать стандартную форму...

Как убрать список материалов категории со страницы категории?
У меня на сайте есть категория в которой содержится несколько материалов. Мне нужно чтобы когда пользователь находится на странице...

Как занести путь файла в БД и вывести его в div?
Здравствуйте, есть форма загрузчика файлов: &lt;?php $uploadfile = &quot;gallery/&quot;.$_FILES; move_uploaded_file($_FILES,...

Вывести список меток в текущей категории
Здравствуйте! Помогите вывести список меток текущей категории Я пробую $tags = get_terms( array( 'taxonomy' =&gt;...

Как разместить DIV по горизантали?
Вобщем я пытаюсь разместить div по горизонтали. когда я в dreeamwiver просматривую результат то всё нормально. если же запускаю через IE и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
сукцессия 9. Математика подлости: как растения предали грибных друзей
anaschu 27.06.2026
Статья 2. Глобальная фосфорная война: эволюционно-экономические механизмы распределения биомов Земли Введение: Экологический рынок как игра с нулевой суммой Традиционная экология долгое время. . .
сукцессия 8. Как я спорил с ИИ, которые - агенты растений и ненавистники грибов!
anaschu 27.06.2026
Статья 1. Хроники грибного восстания: как Сократов диалог разрушил академические догмы ИИ Введение: Синдром «цифрового учебника» Современные большие языковые модели (LLM) обладают колоссальным. . .
Главный вопрос моделирования сукцессии
anaschu 27.06.2026
главный вопрос. Если эктомикориза лучше добывает недоступный фосфор. И ее масса максимальна из всех. А широколиственный лес тоже имеет самую крутую биомассу. То почему не возникло их симбиоза? Это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru