Как сгруппировать связанные записи MySQL в PHP?

У меня проблема с запросом SQL в PHP. Я попробовал все, но он не хочет играть в мяч. Вывод следующий:

Pat48
48
47
47
46
46
Jana47
Luc46

Мне нужно, чтобы это было в группах, например.

Pat48
48
48
Jana47
47
47
Luc46
46
46

Код выглядит следующим образом:

<?php
//Let's connect
$conn = mysql_connect("localhost", "username", "password");
mysql_select_db("the database");
$get_albums = "SELECT album_id, album_title FROM albums ORDER BY album_id    DESC";
$get_pictures = "SELECT picture_id, picture_title, picture_link, album FROM pictures WHERE album=album ORDER BY picture_id DESC LIMIT 1, 18446744073709551615";
$albums = mysql_query($album);
$first_row = mysql_fetch_assoc($first);
$picture_result = mysql_query($get_pictures);

$album_result = mysql_query($get_albums);
while($first_row = mysql_fetch_array($album_result))
{
echo "<p>{$first_row['album_title']}{$first_row['album_id']}
</p>";
{
while(list($picture_id, $picture_title, $picture_link, $album) =     mysql_fetch_row($picture_result))
{
echo "<p>{$album}</p>";
}
}
}
?>

Кажется, это работает благодаря вам, ребята

$get_albums = "SELECT album_id, album_title FROM albums ORDER BY album_id DESC";
$album_result = mysql_query($get_albums);

while($first_row = mysql_fetch_assoc($album_result))
{
echo "<p>{$first_row['album_title']}</p>";

$get_pictures = "SELECT picture_id, picture_title, picture_link, album FROM pictures WHERE album={$first_row['album_id']} ORDER BY album DESC LIMIT 1, 18446744073709551615";
$picture_result = mysql_query($get_pictures);

while($picture_row = mysql_fetch_assoc ($picture_result))
{
echo "<p>{$picture_row['picture_title']}</p>";
}
}

Теперь у меня есть следующая проблема.

Я пытаюсь объединить это с colorbox, но теперь, когда я нажимаю на ссылку, он выводит все те же 4 первые страницы в каждом слайд-шоу. Код следующий.

$get_albums = "SELECT album_id, album_title FROM albums ORDER BY album_id DESC";
$album_result = mysql_query($get_albums);

while($first_row = mysql_fetch_assoc($album_result))
{
$first = mysql_query("SELECT picture_id, picture_title, picture_link, album FROM pictures WHERE album={$first_row['album_id']} ORDER BY album DESC LIMIT 1");
$first_picture = mysql_fetch_assoc($first);

echo "<p><a class='group1' title=\"{$first_picture['picture_title']}\"   href={$first_picture['picture_link']}>{$first_row['album_title']}</a></p>";

$get_pictures = "SELECT picture_id, picture_title, picture_link, album FROM pictures WHERE album={$first_row['album_id']} ORDER BY album DESC LIMIT 1, 18446744073709551615";
$picture_result = mysql_query($get_pictures);

while($picture_row = mysql_fetch_assoc ($picture_result))
{
echo "<p><a class='group1' title=\"{$picture_result['picture_title']}\"     href={$picture_result['picture_link']}>{$first_row['album_title']}</a></p>";
}
}
?>

0

Решение

Запрос на изображения должен быть внутри цикла каждого альбома,
mysql не объединяет автоматически два запроса, вам нужно передать идентификатор альбома во второй запрос, используя значение php, возвращаемое из первого запроса, но внутри цикла, где вы зацикливаете альбомы.

Что-то вроде этого:

<?php
//Let's connect
$conn = mysql_connect("localhost", "username", "password");
mysql_select_db("the database");
$get_albums = "SELECT album_id, album_title FROM albums ORDER BY album_id    DESC";
$album_result = mysql_query($get_albums);

while($first_row = mysql_fetch_assoc($album_result)){
echo "<p>{$first_row['album_title']}{$first_row['album_id']}</p>";

$get_pictures = "SELECT picture_id, picture_title, picture_link, album FROM pictures WHERE album_id={$first_row['album_id']} ORDER BY picture_id DESC";
$picture_result = mysql_query($get_pictures);

while(list($picture_id, $picture_title, $picture_link, $album) =     mysql_fetch_row($picture_result)){
echo "<p>{$picture_id}</p>";
}

}
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]