У меня есть две таблицы, одна содержат страницы/заголовок номер и текст заголовка, другие содержат значение для печати под каждый заголовок:Группировать результаты по заголовкам из другой таблицы
Рубрика:
page | heading | text
1 | 1 | "heading 1"
1 | 2 | "heading 2"
Содержание:
page | heading | contents
1 | 1 | "some stuff"
1 | 1 | "some more stuff"
1 | 2 | "some other stuff"
Я хочу, чтобы результаты для страницы 1 будет:
heading 1
some stuff
some more stuff
heading 2
some other stuff
Добавлен HTML-код, если необходимо.
Использование двух циклов while с mysql_fetch_array()
не работает, потому что вы должны выбрать, прежде чем сможете проверить, находится ли он под правильным заголовком. Это означает, что я пропускаю первую запись каждого следующего заголовка.
$query = "SELECT text,heading FROM headings WHERE page=".$page." ORDER BY heading ASC";
$headings = mysql_query($query) or die(mysql_error());
$query = "SELECT filename,heading FROM pictures WHERE page=".$page." ORDER BY heading ASC";
$pictures = mysql_query($query) or die(mysql_error());
while($heading = mysql_fetch_array($headings)){
echo $heading[0];
while($image = mysql_fetch_array($pictures)){ # This skips entries because I have to check the contents themselves
if($image[1] != $heading[1]){
break;
}
echo $image[0];
}
}
Есть ли способ сделать это без запуска нескольких запросов для каждого заголовка? (Может быть много на странице)
почему вы отделили заголовок из его содержания, кажется противоречащим интуитивным, означает, что ваш есть TODO на по крайней мере, соединение для каждого запроса для каждого фрагмента контента. –
Поскольку для заголовка имеется несколько материалов, мне нужна отдельная таблица для заголовков. –