Я пытаюсь разобраться в связанных ссылках. Итак, у меня есть ссылка, которая ведет на страницу post.php и отображает правильный пост из базы данных. Теперь я хочу вывести все заголовки (с их ссылками) в другом блоке, где категория равна этому сообщению?
Например, сообщение, которое я показываю, является первой записью в таблице. Он должен отображать все заголовки с категорией 1. Если, однако, я показываю страницу, которая относится к категории 2, то также будут отображаться другие заголовки с категорией 2.
Код, который я повторяю на странице post.php:
<?php
require_once("db/db.php");
$sql = $db->prepare("
SELECT *
FROM mytable
WHERE slug=?
");
$sql->bind_param("s",$_GET["slug"]);
$sql->execute();
$result = $sql->get_result();
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
}
?>
<h2><?php echo $row['mytitle'];?></h2>
<?php echo $row['mypost'];?>
+----+-----------------------------+-------------------------------+----------+------------------------+
| id | mytitle | mypost | category | slug |
+----+-----------------------------+-------------------------------+----------+------------------------+
| 1 | title of apost cat1 | it amet, sollicitudin euismod | 1 | my-first-post |
+----+-----------------------------+-------------------------------+----------+------------------------+
| 2 | post of title cat1 | quam tempor mauris elem | 1 | post-of-title |
+----+-----------------------------+-------------------------------+----------+------------------------+
| 3 | Fun title Cat2 | verra mollis justo eget ti | 2 | fun-title |
+----+-----------------------------+-------------------------------+----------+------------------------+
| 4 | What about another one Cat2 | et consequat tortor et vive | 2 | what-about-another-one |
+----+-----------------------------+-------------------------------+----------+------------------------+






Вы можете попробовать это
SELECT t1.mytitle,
t1.mypost,
t2.titles
FROM mytable AS t1
INNER JOIN
(SELECT group_concat(mytitle) AS titles,
category
FROM mytable
GROUP BY category) AS t2 ON t1.category=t2.category
WHERE t1.id=1
Где заголовки - это все заголовки, относящиеся к конкретной категории постов.
Я просто использую 1 стол.
@PeterT Я также использую одну таблицу и присоединяюсь к той же таблице. Вы можете добиться этого с помощью присоединения или подзапроса, или вам нужно написать отдельный запрос для получения всех заголовков на основе этой конкретной категории сообщений.
В настоящий момент мне трудно повторить это. Не будет ли он просто повторять те, что с идентификатором 1?
Вы можете получить текущую категорию сообщений с помощью $row['category'] и выполнить соответствующий запрос:
$sql = $db->prepare("
SELECT *
FROM mytable
WHERE category=? AND id NOT IN (?)
LIMIT 5
");
$sql->bind_param("i",$row['category']);
$sql->bind_param("i",$row['id']);
а затем зациклить результаты в разделенных div. Я думаю, что лучше всего делать это с помощью вызова ajax.
Я думаю, что ajax - это то, что вы ищете ..