Как лучше и надежнее сделать вывод определенных данных? (нужно ваше мнение!)

El Diablo

Доброе зло
Доброго времени суток, я разработал код который в котором можно создать название альбома и данные летят в таблицу albom в которой поля: id,albom. Создал форму в который выбираем наименование альбома, выбираем фотографию, загружаем, она падает в нужное место в нужном размере и качестве, а данные летят в таблицу photo. Сами данные:
id - идентификатор.
pic - адрес и сгенирированное имя картинки.
albom - данные какой альбом был выбран для этого изображения.

Теперь сам вопрос, касающийся вывода данных, как лучше сделать:

1. Вывести список альбомов(ссылок) из таблици albom и при выборе альбома методом GET передать id альбома и на новой странице вывести все данные из таблицы photo,у которых поле albom равен номеру id альбома?

или

2. Сделать выборку всей таблици photo, расформировать по массивам и вывести массив в котором выведутся все строки у которых поле albom равно GET (или даже методом POST).

P.S. Просьба не писать "возьми готовый код" или "не изобретай велосипед" и т.п. .
P.S.S. И маленькая просьба не просто написать этот лучше этого, а дать краткое описание чем и почему.
P.S.S.S. Примеры таблиц:

Таблица albom:


Таблица photo:
 

hell0w0rd

Продвинутый новичок
1 вариант конечно. Почему? Экономичнее.
Только выборку делай в запросе, а не в скрипте и не забудь о безопасности - id должен быть int
 

sakon

П..и.н..ок
Тут вопрос в том, что ты хочешь.
И первый вариант и второй имеют место быть.
В первом ты просто отсылаешь на альбом и фсё. Никаких изысков.
Во втором, под названием альбома, ты выводишь превьюшки. Что красиво.

Первый вариант больше подходит для корпоративных дел, второй больше для частных и дизайнерских.
 

El Diablo

Доброе зло
Я создаю фотоальбом, и на данный момент я реализовал (что бы время зря не терять) 1ый вариант, и собственно столкнулся с проблемой превьюшек.. завершил вывод все шикарно выводится и тут я почесал голову а как вывести по одной фотографии из албьома.., ведь я сделал вывод в виде ссылок.. Я делаю красивый сайт, где фотографии - основной акцент надобности сайта (что бы заказчик зашел и увидел). Однако с массивами еще не работал, и по всей видимости придется поработать ^^,
 

sakon

П..и.н..ок
Я создаю фотоальбом, и на данный момент я реализовал (что бы время зря не терять) 1ый вариант, и собственно столкнулся с проблемой превьюшек.. завершил вывод все шикарно выводится и тут я почесал голову а как вывести по одной фотографии из албьома.., ведь я сделал вывод в виде ссылок.. Я делаю красивый сайт, где фотографии - основной акцент надобности сайта (что бы заказчик зашел и увидел). Однако с массивами еще не работал, и по всей видимости придется поработать ^^,
В массивах нет ничего страшного :)
Удобный инструмент, для работы с данными.

Тут вот какие момент. Я бы добавил в таблицу photo поле position или pos, что бы, при необходимости первыми были те превью, которые ты хочешь поставить на первые места
С твоим вариантом (№1) все просто
PHP:
$query_photo = mysql_query('SELECT pic FROM photo WHERE albom="'.$_GET['albom'].'" ORDER BY pos';
// ORDER BY pos - опционально, если нужно сортировать фото
if(mysql_num_rows($query_photo) == 0)
{
    $message = 'Альбом пуст';
}
else
{
    $i=0;
    while($row_photo=mysql_fetch_array($query_photo,MYSQL_ASSOC))
    {
        $array_photo[$i] = $row_photo;
        $i++;
    }
}
Фсё. Твой массив готов. Делай с ним что хочешь. :)
А что ты хочешь, можешь посмотреть здесь - http://www.php.net/manual/ru/book.array.php
 

El Diablo

Доброе зло
sakon вот как раз по поводу вывода самого альбома трабл нет :) я написал вот такой код:

PHP:
<?php 
include ("../blocks/bd.php");
$id = $_GET['id'];
$result = mysql_query ("SELECT * FROM photo WHERE albom=$id",$db);
$myrow = mysql_fetch_array($result);
$pic = $myrow['pic'];
$albom = $myrow['albom'];
?>
..............
<?php if (isset($pic)) {
      do {printf ("<a href='%s'>%s</a><br>",$myrow['pic'],$myrow['id']);}
      while($myrow = mysql_fetch_array($result));}
else {echo "Ни одной фотографии не загруженно.";} ?>
на одном из форумов сакцентировали внимание, что использую printf и что излишне много переменных вывожу (не по надобности) и не разумно использую while-do и мне код подкорректировали до такого:

PHP:
<?php
include ("../blocks/bd.php");
$id = (int)$_GET['id'];
$result = mysql_query("SELECT * FROM `photo` WHERE `albom`=$id", $db);
?>
..............
<?php
if (mysql_num_rows($result)) {
  while ($myrow = mysql_fetch_array($result)) {
    echo "<a href='{$myrow['pic']}'>{$myrow['id']}</a><br>";
  }
} else {
  echo "Ни одной фотографии не загруженно.";
}
?>
Однако проблема на счет превьюшек вот с чем:

1 страничька у меня с выбором альбомов, когда выбирают альбом (список альбомов собирается из таблицы albom) с сылкой летит нужный id и на новой странице ловится id и выводится все поля с наличием вышеуказанного id, а превьюшки нужны для самих альбомов, что бы они не были простыми ссылками, а туда подгружалась 1 картинка из таблици с фото. :)

как я себе расписал на странице с выбором альбомов: нужно собрать массив таблицы photo (где хранятся ссылки на фото) > из них составить массив с id > вывести первое значение массива с id?

1.jpg
 

sakon

П..и.н..ок
Введи в таблицу photo доп. поле, в котором ты будешь указывать главное фото альбома, которое и будет выводиться вместе со ссылкой. Будет проще.
 

El Diablo

Доброе зло
Я такой момент упустил! благодарю за информацию, сейчас добавлю страничку, что бы можно было выбрать обложку фото, будет высыпать фото из одного альбома, радио кнопкой отсылатся ссылка на фото в дополнительное новое поле в таблице альбом! Еще раз благодарю!!
 
Сверху