Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/20: Рейтинг темы: голосов - 20, средняя оценка - 4.60
84 / 84 / 8
Регистрация: 12.04.2010
Сообщений: 324

Запрос с условиями

26.02.2011, 17:38. Показов 4251. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Пишу админку для галереи. Всё работает...но хотелось бы сделать всё работало красиво
В общем есть 2 таблица в базе, одна (gallery) содержит в себе все альбомы и состоит из id, title(название альбома),cover(обложка альбома), discription(описание); вторая(photos) содержит информацию о фотографиях id, album(соответствует полю id в таблице с альбомами - именно по этому полю определяется какому альбому принадлежит фото), path(название фото), description(описание фото). Хотелось бы сделать один запрос, при помощи которго можно определить если у альбома не определена обложка, то выведется любая фотография наугад из этого альбома в качестве обложки, а если альбом пуст, то выведется заготовленная картинка(что то типо стандартной обложки). Могу это реализовать несколькими запросами, но если есть вариант одним, то подскажите пожалуйста.

данную тему я создавал в ветке php и базы данных, но мне там посоветовали обратиться в данную ветку - буду рад если поможете .
Вот ссылка на тему Запрос с условиями
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.02.2011, 17:38
Ответы с готовыми решениями:

Запрос с несколькими условиями
Здравствуйте, специалисты! Помогите, пожалуйста, составить sql-запрос. Дано: две таблицы 1) клиенты clients (id, workstatus):...

Выполнить запрос с несколькими условиями
Здравствуйте. Подскажите пожалуйста почему не хочет работать вот такой код: $strSQL = "SELECT * FROM baza WHERE srok...

INSERT c условиями
Здравствуйте! Помогите, пожалуйста, написать такой запрос - есть таблица с двумя колонками: номер документа (первичный ключ) и тип...

4
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
26.02.2011, 18:16
Если выбирает только один альбом по его id:
SQL
1
2
3
4
5
6
7
8
9
10
SELECT `g`.*, IF(`g`.`cover` = '' AND `p`.`path` IS NOT NULL, `p`.`path`, `g`.`cover`) AS `_cover`
FROM `gallery` AS `g`
    LEFT JOIN (
        SELECT *
        FROM `photos`
        WHERE `album` = 42
        ORDER BY RAND()
        LIMIT 1
    ) AS `p` ON `g`.`id` = `p`.`album` AND `g`.`cover` = ''
WHERE `g`.`id` = 42
Не проверял. Его id=42 в двух местах (!)

Если выбираем не по id или выбираем сразу несколько альбомов, то надо сложнее придумывать.
1
84 / 84 / 8
Регистрация: 12.04.2010
Сообщений: 324
27.02.2011, 08:08  [ТС]
Когда убираю строчки с id=42 выводит несколько альбомов, вроде как ни чего, но всё же немного не то что я хотел. В общем на выходе должно получиться следующее (рис 1), стандартная обложка находится на 1 уровне с папками, в которых хранятся фотографии галереи (название папки = id альбома в базе). Покажу рабочий код который справляется с работой, но в нём 2 запроса и проверка на то пуста ли обложка (cover) происходит в php, а не в sql запросе. К тому же стандартная обложка должна показываться в том случае, если не определена обложка альбома и нет фотографий в альбоме.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$sql_gallery = "SELECT * FROM `gallery`";
$res_gallery = mysql_query($sql_gallery);
if($res_gallery and mysql_num_rows($res_gallery) > 0)
{   
while($row_gallery = mysql_fetch_assoc($res_gallery))
{
$cur_alb = $row_gallery['id'];
$photo_amount = mysql_num_rows(mysql_query("SELECT `id` FROM `photos` WHERE `album` = '".$row_gallery['id']."'"));
$row_gallery['cover'] == '' ? $cur_cover = 'no-cover.jpg' : $cur_cover = $row_gallery["id"]."/pre_".$row_gallery["cover"];
echo '<tr id="par">
<td><img src="files/gallery/'.$cur_cover.'" widht="100" height="100"/></td>
<td id="album_central_td">
    <div>
        <strong>Название альбома:</strong> '.htmlspecialchars($row_gallery["title"]).' <br/>
        <strong>Количество фотографий:</strong> '.$photo_amount.' <br/>
        <strong>Дата создания:</strong> '.$row_gallery["created"].' <br/>
    </div>
    <textarea class="album_description">'.htmlspecialchars($row_gallery["description"]).'</textarea>
</td>
<td valign="top">
    <a href="gallery_editor.htm&album='.$row_gallery["id"].'" class="img_btn"><img src="https://www.cyberforum.ru/images/admin/edit.png" title="Редактировать альбом" width="24" height="24"/></a>
    <a href="#" class="img_btn delete"><img src="https://www.cyberforum.ru/images/admin/delete.png" title="Удалить альбом" width="24" height="24"/></a>
    <br/><br/><br/>
    <a href="#" class="img_btn update"><img src="https://www.cyberforum.ru/images/admin/update.png" title="Сохранить описание фото" width="24" height="24"/></a>
    <a href="#" class="img_btn exit_edit"><img src="https://www.cyberforum.ru/images/admin/exit_edit.png" title="Отменить" width="24" height="24"/></a>
    <input type="hidden" value="'.$row_gallery["id"].'" class="id_marker" />
</td>
</tr>';
}
}
помоему это не лучшее решение данной задачи
Миниатюры
Запрос с условиями  
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
27.02.2011, 14:38
Цитата Сообщение от xand Посмотреть сообщение
В общем на выходе должно получиться следующее (рис 1)
Вот с этого и надо было начинать.
0
 Аватар для sigmov
585 / 372 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
28.02.2011, 09:30
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
SELECT 
    gallery.name, 
    IF
    (
        gallery.title IS NULL,
        IF
        (
            EXISTS ( SELECT * FROM FROM photos WHERE photos.album = gallery.id ),
            (
                SELECT photos.image
                FROM photos
                WHERE photos.album = gallery.id
                LIMIT RAND(),1
            ),
            (
                SELECT photos.image
                FROM photos
                WHERE photos.id = 0# стандартная обложка
            )
        ),
        gallery.title
    ),
    gallery.description
FROM gallery
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.02.2011, 09:30
Помогаю со студенческими работами здесь

Тригер с двумя условиями
Помогите поправить условие в триггере пробовал разные вариации не получается сделать 2 шаг.. Первый записываю значение 1 в таблицу или...

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

Выбор несколько случайных записей с разными условиями
Есть таблица users в ней есть поле category_id. Подскажите как выбрать из таблицы users по одному случайному пользователю с разными...

Одновременный вывод из одной и той же бд строки но с разными условиями
Доброго времени формучане есть скрипт вывода строк $result = mysql_query(&quot;SELECT * FROM sms WHERE komu='$db_id' AND author='$ot' ORDER BY...

Задачу не могу сделать идеально с двумя условиями хитрыми
есть задача от Яндекса для решения задачи я бы написал 2 разных запроса элементарных! но тут скорее всего надо написать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru