PHP mysqli echo похожие ссылки по категориям

Я пытаюсь разобраться в связанных ссылках. Итак, у меня есть ссылка, которая ведет на страницу 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 |
+----+-----------------------------+-------------------------------+----------+------------------------+

Я думаю, что ajax - это то, что вы ищете ..

Naruto 11.10.2018 11:17
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
52
2

Ответы 2

Вы можете попробовать это

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 11.10.2018 11:46

@PeterT Я также использую одну таблицу и присоединяюсь к той же таблице. Вы можете добиться этого с помощью присоединения или подзапроса, или вам нужно написать отдельный запрос для получения всех заголовков на основе этой конкретной категории сообщений.

ABHI 11.10.2018 13:00

В настоящий момент мне трудно повторить это. Не будет ли он просто повторять те, что с идентификатором 1?

PeterT 11.10.2018 14:49

Вы можете получить текущую категорию сообщений с помощью $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.

Другие вопросы по теме