Всем привет.
Столкнулсья с проблемой извлечь инфы из БД.Проблема такая что нужно из БД выводить информацию из категории.
Есть 2 таблиц category и press в БД
В category есть 2 поле с которыми я работаю image и name соответственно имя и картинка категории.
И в press есть 2 поле text(информация ) и category во втором хранитсья какой категории относитсья этот текст соответственно .
Нужно выводить так :
картинка соответсвующей категории потом его текст в списке ul li. потом картинка следующей категории и потом его текст и так д.
Мои попытки..
Первая попытка
<?php
global $db; //берем подключения из БД
$rows = $db->query("SELECT `image` FROM `category`"); //берем все картинки из БД
foreach($rows as $row){ //в цикле проходимсья по ним
$img = $row["image"];
?>
<div class="blue">
<img class="title-img" src="../upload/<?php echo $img; ?>"> //присваиваем картинку в цикле из папки
<?php } ?> закрываем область работы foreach цикла
<?php
global $db;
$rows = $db->query("SELECT * FROM `press`"); //берем все данные из таблицы press
foreach($rows as $row){ //проходимсья
$text = $row["text"]; //берем текст от туда
?>
<ul>
<li><?php echo $text; ?></li> //и выводим текст
</ul>
<?php } ?>
</div>
Такая конструкция выводила всех тегов одного внутри другова то есть были вложенные теги с классом blue(один класс blue внутри с элементами потом другой класс blue с его элементами) до того как не закончились элементы внутри БД
Вторая попытка
<?php
global $db;
$rows = $db->query("SELECT `image` FROM `category`");
foreach($rows as $row){
$img = $row["image"];
?>
<!-- <div class="blue> -->
<img class="title-img" src="../upload/<?php echo $img; ?>">
<?php } ?>
<ul>
<?php
global $db;
$rows = $db->query("SELECT * FROM `press`");
foreach($rows as $row){
$text = $row["text"];
?>
<li><?php echo $text; ?></li>
<?php } ?>
</ul>
Вторая попытка аналогично первому ничего не получилось но в этот раз у меня получилось хотя бы не показывать элементов одного внутри другово.
Текст вывелось в одном ul внутри всех li а картинки категорий наверху один за другим без вложенности.
Попыток было больше чем 2 если бы я написал всех боюсь места бы не хватило тут помогите пожалуйста очень прошу.Насчет безопасности знаю мой код уязвим для иньекции.
Почти доделал.
1.Вместо того чтобы взять только картинку я взял все данные из таблицы category
2.Переменная name нужно чтобы сравнивать его с другим переменным ($category_name) из другой таблицы (press)
3.Если они совпали создавать тег li в котором лежит переменная $text которая берет текст из БД
<?php
global $db;
$rows = $db->query("SELECT * FROM `category`"); //1.
foreach($rows as $row){
$img = $row["image"];
$name = $row["name"];
?>
<!-- <div class="baku-ws"> -->
<img class="title-img" src="../upload/<?php echo $img; ?>">
<ul>
<?php
global $db;
$rows = $db->query("SELECT * FROM `press`");
foreach($rows as $row){
$text = $row["text"];
$category_name = $row["category"];
if($category_name == $name){ //2
echo "<li>" . $text . "</li>"; //3
}
?>
<?php } ?>
</ul>
<?php } ?>
Сборка персонального компьютера от Artline: умный выбор для современных пользователей