PHP mysqli эхо ссылки по категориям - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь разобраться, делая связанные ссылки.Так что у меня есть ссылка, которая ведет на страницу post.php и отображает правильный пост из базы данных.Теперь я хочу отобразить все заголовки (с их ссылками) в другом div, где категория равна этому сообщению?

Например, сообщение, которое я показываю, является первой записью в таблице.Должны отображаться все заголовки с категорией 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 |
+----+-----------------------------+-------------------------------+----------+------------------------+

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

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

0 голосов
/ 11 октября 2018

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

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

Где заголовки - это все заголовки, связанные с данной категорией сообщений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...