Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Хаки Вывод картинки в новости (запрос)

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


     19.03.2012    Хаки, MySQL    3084

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




Подскажите пжл , как можно упростить запрос
$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
29

182 | 174

promax - 19 марта 2012 22:04 - Юзер

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

nowheremany
192

1659 | 1292

nowheremany - 21 марта 2012 06:27 - Эксперт

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

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

promax
29

182 | 174

promax - 14 апреля 2012 14:09 - Юзер

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

nowheremany
192

1659 | 1292

nowheremany - 14 апреля 2012 20:57 - Эксперт

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

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

promax
29

182 | 174

promax - 14 апреля 2012 21:03 - Юзер

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

promax
29

182 | 174

promax - 14 апреля 2012 22:14 - Юзер

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
192

1659 | 1292

nowheremany - 15 апреля 2012 12:07 - Эксперт

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
17

75 | 37

Morse - 14 апреля 2012 23:35 - Юзер

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

promax
29

182 | 174

promax - 15 апреля 2012 08:06 - Юзер

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

nowheremany
192

1659 | 1292

nowheremany - 15 апреля 2012 12:08 - Эксперт

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

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

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

 10.10.2012 lexa21reg  Хаки