Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » Хаки » Вывод картинки в новости (запрос)

Вывод картинки в новости (запрос)


     картинка, запрос    Хаки, MySQL    4575

вопрос
Есть мод , в котором картинка загружается на странице добавления новости . В полной и короткой новости картинка выводится таким образом :




Подскажите пжл , как можно упростить запрос
$sql_result2 = $db->query( "SELECT images, news_id FROM " . PREFIX . "_images where news_id = '{$row['id']}'" ); 


Точнее можно ли его связать в один (стандартный , который используется в dle при выводе новостей). Просто при выводе на главной к каждой новости +1 запрос , итого при выводе 30 новостей + 30 запросов , а то и более бывает !

Ответил: rashpil


Чтобы запросить ещё и картинки к новостям нужно усложнить запрос на вывод новостей. Вот вам пример такого запроса:
SELECT images, dle_post.id, news_id, title, category, alt_name, rating, flag
FROM dle_post, dle_images
WHERE dle_post.id = dle_images.news_id
LIMIT 0 , 30


Чтобы это заработало в движке, нужно переписать запросы в engine/engine.php под ваш лад. А код обработчика избавить от строк:

$sql_result2 = $db->query( "SELECT images, news_id FROM " . PREFIX . "_images where news_id = '{$row['id']}'" );
$poster = $db->get_row($sql_result2);


И соответственно вместо массива $poster в скрипте обращаться к массиву $row. Так у вас получится тот же один запрос на вывод новостей и их картинок, только обрабатываться он будет куда медленнее.

10 комментариев

promax
Юзер

promax - -

Спасибо , очень подробно расписано , может кому нибудь еще пригодится )

nowheremany
Эксперт

nowheremany - -

Надо бы через JOIN - будет быстрее

Благодарность принимаю тут Связь

promax
Юзер

promax - -

можете пример привести ?! ( для моего варианта )

nowheremany
Эксперт

nowheremany - -

Join в Engine.php пихаем - уменьшаем запрос. Я это имел ввиду

Благодарность принимаю тут Связь

promax
Юзер

promax - -

да я понял , просто не знаю как написать запрос .

promax
Юзер

promax - -

SELECT images.images, images.news_id, post.id, post.autor, post.director, post.actors, post.date, post.short_story, SUBSTRING(post.full_story, 1, 15) as full_story, post.xfields, post.title, post.category, post.alt_name, post.comm_num, post.allow_comm, post.allow_rate, post.fixed, post.rating, post.vote_num, post.news_read, post.flag, post.editdate, post.editor, post.reason, post.view_edit, post.tags FROM dle_post as post, dle_images as images WHERE post.category regexp '[[:<:]](6|12|16|19|20|21|22|23|24)[[:>:]]' AND post.approve AND post.date < '2012-04-14 22:10:15' ORDER BY post.date DESC LIMIT 0,25]


вот запрос , но показ новостей некорректный ( не все новости выводятся) . В чем моя ошибка, может что не так прописал ?

nowheremany
Эксперт

nowheremany - -

SELECT images.images, images.news_id, post.id, post.autor, post.director, post.actors, post.date, post.short_story, SUBSTRING(post.full_story, 1, 15) as full_story, post.xfields, post.title, post.category, post.alt_name, post.comm_num, post.allow_comm, post.allow_rate, post.fixed, post.rating, post.vote_num, post.news_read, post.flag, post.editdate, post.editor, post.reason, post.view_edit, post.tags FROM dle_post as post LEFT JOIN dle_images as images on images.news_id=post.id WHERE post.category regexp '[[:<:]](6|12|16|19|20|21|22|23|24)[[:>:]]' AND post.approve AND post.date < '2012-04-14 22:10:15' ORDER BY post.date DESC LIMIT 0,25]

Благодарность принимаю тут Связь

Morse
Юзер

Morse - -

Можно узнать что это за мод ? :)

promax
Юзер

promax - -

Добавление картинки и файлов с окна добавления новости v 0.2

nowheremany
Эксперт

nowheremany - -

Танцы с бубном какие-то
Проще здесь

Благодарность принимаю тут Связь

Похожие вопросы

 10.10.2012 lexa21reg  Хаки
наверх