|
|
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
Всем привет. Пример: Новостная лента с фотографиями, делаю запрос к базе $result_set = $MySQLi->query("SELECT * FROM `news` ORDER BY `date` DESC LIMIT 10"); в этой базе есть столбец IMG по которому должны считываться значения из другой таблицы. В данном примере я считываю последние 10 новостей и вывожу их на экран. Задумка: Есть таблица `news` в которой записываются цифровые значения в поле IMG (могут повторяться), есть другая таблица, в которой по этим значениям считываются соответствующие значения в соответствующей строке. Как сделать запрос ко второй таблице, чтобы не загружать её данные полностью ($result_set_img = $MySQLi->query("SELECT * FROM `news_img`;) Как это лучше реализовать или какой лучше вариант использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 19:28:46 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
не очень понял задачу, но похоже, что так: Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 19:55:16 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
Спасибо. Попробую завтра с двойным SELECT. Суть моей идеи чтобы новости были в одной таблице, а изображения к каждой новости в другой таблице. Сейчас я тупо кодом прописываю в поле ТЕКСТ ссылки на изображения. Может есть более разумный вариант это реализовать, использую например только одну таблицу, не знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 20:05:16 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
Не получается сделать такую выборку, чтобы в одном запросе были нужные данные и в правильной структуре. Придётся загружать массив с новостями и отдельно массив с фотографиями, не знаю будет ли это рационально. Буду для каждой новости проверять наличие фото и уже простым перебором добавлять в новость фото из другого массива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 11:24:48 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
Алисей, Ну так вы объясните толком задачу. Где и как лежат данные и в каком виде нужно получить результат. Желательно с примерами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 11:25:59 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
miksoft, Есть две таблицы, одна новости, другая изображения. У каждой новости есть свой imgid, по этому идентификатору ищутся значения в таблице Изображения и добавляются в новость все изображения с этим идентификатором ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 11:58:35 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
Написал вот такой код для выбора нужных изображений ("SELECT * FROM news_img WHERE news_img.imgid IN (SELECT `imgid` FROM `news` ORDER BY `date` DESC LIMIT 10)") но при $row_img = $result_set_img->fetch_assoc(); выдаёт ошибку, думаю ошибка в запросе, не могу понять где ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 12:37:15 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
Алисейвыдаёт ошибкукоторую мы должны угадать? запрос на вид нормальный (откидываю в сторону вопросы оптимизации) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 12:43:55 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
Алисей, по данному запросу не получится считать 10 последних новостей и вывести их на экран (тем более если учитывать, что у разных новостей могут быть одинаковые картинки). Вы выбираете только информацию о картинках. miksoft написал нормальный запрос, зачем писать свою отсебятину, не понимаю однако... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 12:52:41 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
Mr.Fontaine, не, всё правильно, это у ТС такие замысловатые названия полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 12:53:29 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
Mr.Fontaine, другое дело, что запрос miksofta выведет не 10 строк а значительно больше (судя по картинке, в news_img для одной картинки может быть заполнено несколько строк), но эту проблему можно решить уже непосредственно в php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 12:57:53 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
tanglir, чё там замысловатого? новости хранятся в таблице news. Информация о картинке в таблице news_img. Всё понятно пока что. Автор из таблицы новостей берёт id картинок прикреплённых к последним десяти новосям и ищёт в таблице картинок информацию об этих картинках. Это тоже всё прекрасно понятно. Непонятно одно: а новости-то сами где в этом запросе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 13:00:49 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
tanglir, я не вижу в запросе автора заголовка новости, текста новости, даты создания новости. А в запрсое miksofta это всё есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 13:03:18 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
Mr.FontaineMr.Fontaine, другое дело, что запрос miksofta выведет не 10 строк а значительно больше (судя по картинке, в news_img для одной картинки может быть заполнено несколько строк), но эту проблему можно решить уже непосредственно в phpНа тот момент такой картинки еще не было, я полагал, что идентификатор картинки уникален. Но теперь стало непонятным назначение поля `news`.`imgid`. Можно же картинки привязывать прямо к id новости. Решить дублирование записей можно и в запросе. Главное понять, в каком виде должен быть результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 13:03:24 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
tanglir, ошибка скорее всего в запросе, потому что при более простом запросе, ошибка не появляется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 13:04:15 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
miksoftНа тот момент такой картинки еще не было, я полагал, что идентификатор картинки уникален. Но теперь стало непонятным назначение поля `news`.`imgid`. Можно же картинки привязывать прямо к id новости. Решить дублирование записей можно и в запросе. Главное понять, в каком виде должен быть результат. Полностю согласен, и как раз говорю, что Ваш запрос более приемлем, чем запрос автора. Естественно мы тут гадаем что вообще должно появиться. Особо популярный сегодня хрустальный шар подсказывает, что картинка привязана к новости в таблице news (не зря же там есть поле imgid), а в таблице news_img записаны в несколько строчек параметры картинки (может быть ширина, высота, описание картинки, которое надо вывести на страничку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 13:11:12 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
miksoft, Я специально не стал привязывать АйДи новости (уникальный) к АйДи картинки. Это ведь не имеет значения сейчас (оптимизацию я сделаю позже). Картинки у меня будут разные для одной новости. Для одной новости их может быть как одна, так и 20. Сейчас задача состоит в том чтобы извлечь все изображения из 2 таблицы АйДи которых совпадает с АйДи в 1 таблице ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 13:13:51 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
Только сейчас осознал, что это запрос Алисейдля выбора нужных изображений тут новостей и быть-то не должно. То есть работа строится через два запроса. Но тогда он вообще не понятен. При использовании двух запросов по-моему единственный путь выбрать новости и в цикле по id картинки выбирать все параметры, нахрена там опять выбираются картинки для всех новостей да ещё и без distincta непонятно однако... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 13:16:50 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
Алисей, Вернее наоборот...извлечь изображения из таблицы ИЗО которые должны быть для последних 10 новостей по идентификатору ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 13:16:52 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
Алисей, Все еще остается непонятным, чем именно не угодил мой запрос? Ваши фразы "не получается" и "выдает ошибку" никакой ясности не вносят. Показывайте фактические результаты и сообщение об ошибке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 13:20:37 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
miksoft, по Вашему запросу у меня новость повторяется столько количество раз, сколько картинок во второй таблице. Сейчас попробую ещё раз изменить код PHP для вывода новости... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 13:29:05 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
Алисей, так же непонятно почему нельзя написать Код: sql 1. и также непонятно почему связь полей news.imgid=news_img.imgid не является привязкой новости к картинке(картинкам). А что же это тогда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 13:33:02 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
miksoft, как я понимаю, Ваш запрос создаёт новый массив, допустим берём последние 10 новостей и если есть 3 картинки в другой таблице к 1 новости, то выводится 7 новостей и 3 повторяющихся. Дополнительно к этому у меня сбиваются индексы, для отображения новости полностью...буду переписывать код PHP в таком случае ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 13:35:02 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
Mr.Fontaine, всё правильно, это и есть привязка, пусть не по основному индексу, но привязка :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 13:36:08 |
|
||
|
Выборка из таблицы значений по индексу другой таблицы
|
|||
|---|---|---|---|
|
#18+
[quot Mr.Fontaine]Алисей, так же непонятно почему нельзя написать Код: sql 1. Можно и так, но тогда я так понимаю этот запрос нужно писать в цикле для каждой выводимой новости...это многочисленные обращения к базе, или я не так думаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 13:38:03 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38640865&tid=1834833]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 358ms |

| 0 / 0 |
