X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Помогите с mysql-запросом
GC_
GC_
Topic Starter сообщение 26.1.2014, 1:40; Ответить: GC_
Сообщение #1


Доброй ночи!


Помогите грамотно решить задачу.

Имеется база данных, в ней 2 таблицы:

1. каталог картинок (ид, картинка)
2. что-то типа сессий пользователя, в которую записывается информация по просмотренным картинкам (ид, логин, ид картинки, параметр)
параметр содержит информацию, например "смотрел", "не смотрел".


Как правильно сделать выборки из БД:

а) чтобы выдался список всех картинок, ид которых не упоминается во второй таблице.
б) чтобы выдался список всех картинок, ид которых упоминается во второй таблице и при этом содержит какой-либо параметр.

Знаний не хватает, на ум приходит только такого рода решение:


q =query SELECT FROM _table1

while (r = fetch (q)){

q2 =query SELECT FROM _table2 WHERE ид картинки='r[ид]'
r2 = fetch (q2)

}


но при таком варианте делается много запросов к бд и если нужно вывести скажем 50 картинок, то это 51 запрос будет :-)

Вот подскажите, как сделать правильно?


--------------------
В чем сила, Брат?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Tollun
Tollun
сообщение 26.1.2014, 2:45; Ответить: Tollun
Сообщение #2


Если опустить вопрос объёма в таблицах, 50 мелочь, можно 2 - результат первого в массив и сравнивать при втором.
Но объём таблиц и частота подобных выборок имеет значение

Сообщение отредактировал Tollun - 26.1.2014, 2:53
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
GC_
GC_
Topic Starter сообщение 26.1.2014, 10:15; Ответить: GC_
Сообщение #3


Первая таблица небольшая, вторая скорее всего очень большая будет.

Можно пример реализации про массив?


--------------------
В чем сила, Брат?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Tollun
Tollun
сообщение 26.1.2014, 11:01; Ответить: Tollun
Сообщение #4


/* первая выборка */
while(query){
$arr[] = $param...
}

q =query SELECT FROM _table1

while (r = fetch (q)){

$a = array_search(r[ид], $arr);

if($a){
/* упоминание  есть */
}

}


можно так же in_array или array_key_exists

Сообщение отредактировал Tollun - 26.1.2014, 10:55


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
GC_
GC_
Topic Starter сообщение 26.1.2014, 11:07; Ответить: GC_
Сообщение #5


Нашел вот такое решение:

SELECT FROM tbl1, tbl2 WHERE tbl1.id=tbl2.id


--------------------
В чем сила, Брат?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Solonik
Solonik
сообщение 26.1.2014, 11:30; Ответить: Solonik
Сообщение #6


GC_, Да можно напрямую из базы средствами mysql вытянуть уже. К примеру можно попробовать через вложенные запросы.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
GC_
GC_
Topic Starter сообщение 26.1.2014, 11:43; Ответить: GC_
Сообщение #7


Разобрался, нашел нужные примеры в гугле :-) тему можно закрыть


--------------------
В чем сила, Брат?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
WebAction
WebAction
сообщение 26.1.2014, 11:46; Ответить: WebAction
Сообщение #8


Вы нашли верное решение. Closed!

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


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


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите вспомнить рекламного бота Телеграм для обмена рекламой
0 Mixatraider 730 21.2.2024, 23:42
автор: Mixatraider
Открытая тема (нет новых ответов) Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery
Разработка сайтов и сервисов под-ключ
0 alexey 1243 24.11.2023, 14:46
автор: alexey
Открытая тема (нет новых ответов) Помогите рещить проблему с монитором.
Почему низкое разрешение при подключении монитора через displayport?
0 Levels 1702 11.12.2020, 0:48
автор: Levels
Открытая тема (нет новых ответов) Помогите кто нибудь получить партнерку Росбанк!
7 heisenberg_mw 2343 7.8.2020, 9:28
автор: heisenberg_mw
Открытая тема (нет новых ответов) Помогите найти тему пожалуйста
7 virtas 12525 24.7.2020, 17:02
автор: -JamesSmips-


 



RSS Текстовая версия Сейчас: 24.4.2024, 19:13
Дизайн