Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как организовать систему вывода из БД ?

Как организовать систему вывода из БД ?


     27.10.2016    Общие вопросы по PHP, Модули, Хаки, MySQL    443

вопрос
Привет всем. Подскажите с моей проблемой.

Есть некий код


    $tpl->load_template( 'calendar/next.tpl' );
    $sql_date = $db->query("SELECT s.*, e.* FROM " . PREFIX . "_post s LEFT JOIN " . PREFIX . "_episode e ON (e.show_id=s.id) WHERE TO_DAYS(NOW()) - TO_DAYS(epdate) <= 0 ORDER BY epdate ASC");
    while ( $row_d = $db->get_row($sql_date) ) {
        $tpl->set( '{epdate}', NewTime($row_d['epdate']) );
            $sql_episode = $db->query("SELECT s.*, e.* FROM " . PREFIX . "_post s," . PREFIX . "_episode e WHERE e.show_id = s.id AND e.epdate = '{$row_d['epdate']}'");
                while( $row_e = $db->get_row($sql_episode)) {
                    $full_link = $config['http_home_url'] . get_url( $row_e['category'] ) . "/" . $row_e['id'] . "-" . $row_e['alt_name'] . ".html";
                    $episode .= "<div class=\"episode\"><div class=\"episodes-image\">
                    <a href=\"".$full_link."\">
                    <img src=\"" . $config['http_home_url'] . "uploads/posts/" . $row_e['poster'] . "\" width=\"100%\"></a></div>
                    <div class=\"epdesc\">
                    <div class=\"shrutitle\"><a href=\"".$full_link."\">" . $row_e['title'] . "</a></div>
                    <!--div class=\"shtitle\">Marvels Agents of S.H.I.E.L.D.</div-->
                    <div class=\"eptitle\"><b>".$row_e['season_id']. "x".$row_e['nomer']. "</b>  ".$row_e['eptitle']. "</div>
                    </div></div>";
                    $i++;
                }
        if($episode) {
        $tpl->set( '[next]', "" );
        $tpl->set( '[/next]', "" );
        $tpl->set( '{next}', $episode );
        } else {
        $tpl->set_block( "'\\[next\\](.*?)\\[/next\\]'si", "" );
        $tpl->set( '{next}', '' );
        }
        $episode = null;
    $tpl->compile('content');
    }
    $db->free();


Все выводит правильно, но если дата выхода совпадает с 2 сериалами то информация дублируется 2 раза

Скрин



Как убрать дублирование ?

Ответил: fanaticus


Спасибо за помощь. Все сделал сам.

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

dj-avtosh
шашлычник

dj-avtosh - 27 октября 2016 15:20 -

$sql_date = $db->query("SELECT DISTINCT(s.id), s.*, e.* FROM " . PREFIX . "_post s LEFT JOIN " . PREFIX . "_episode e ON (e.show_id=s.id) WHERE TO_DAYS(NOW()) - TO_DAYS(epdate) <= 0 ORDER BY epdate ASC");


наверно как-то так

или

$sql_date = $db->query("s.*, e.* FROM " . PREFIX . "_post s LEFT JOIN " . PREFIX . "_episode e ON (e.show_id=s.id) WHERE TO_DAYS(NOW()) - TO_DAYS(epdate) <= 0 GROUP BY s.id ORDER BY epdate ASC");

skype: elhan.isaev

fanaticus
Юзер

fanaticus - 27 октября 2016 19:02 -

Нет(

dj-avtosh
шашлычник

dj-avtosh - 27 октября 2016 19:04 -

А зачем запрос в цикле и еще цикл в цикле?

skype: elhan.isaev

fanaticus
Юзер

fanaticus - 27 октября 2016 19:18 -

1 запрос определяет дату
выводим дату в цикле
второй запрос определяет серию по этой дате ( 1 запрос )
и выводит инфу

MAP
Юзер

MAP - 28 октября 2016 08:22 -

Подскажите как решили проблему?
Посмотрел на вашу реализацию - мне требуется что-то подобное, только вывод по подкатегориям, а не по дате.

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

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

наверх