L oop через одну таблицу с другой l oop для каждой записи - PullRequest
0 голосов
/ 15 февраля 2020

У меня есть одна таблица с категориями и другая таблица с ссылками на записи для каждой категории, и структура таблицы выглядит следующим образом:

категории:

id (int)
name (varchar)

ссылки:

id (int)
link (varchar)
fk_cat_id (int)

Вот как я это делаю сейчас, но знайте, что это не go с запросом внутри запроса:

$query = "SELECT * FROM categories";
if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_assoc()) { 
        $catid = $row['cat_id'];

        echo 'CatName: '.$row['name'];
        echo '<ul>';

        $query2 = "SELECT * FROM links WHERE fk_cat_id = $catid";
        if ($result2 = $mysqli->query($query2)) {
            while ($row2 = $result2->fetch_assoc()) { 
                echo '<li>'.$row2['link'].'</li>';
            }
        }

        echo '</ul>';

    }
}

Я думаю, мне нужно go к какому-либо методу JOIN, но не уверен как!

1 Ответ

2 голосов
/ 15 февраля 2020

Следующий запрос будет использоваться для получения ссылок в отношении категорий ссылок . Кроме того, рекомендуется указывать имя поля в запросе, чтобы получать только указанные c столбцы вместо *.

SELECT links.id AS link_id, links.link, links.fk_cat_id, categories.name
FROM links
JOIN categories ON categories.id = links.fk_cat_id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...