sizintsev
@sizintsev
Developer U-CRM, CEO

Как сделать чтобы одна запись на все дни распределилась?

Друзья, коллеги, код писали давно и не я. По этому прошу помощи.

Есть эфирная сетка, в которой расставляются радио-шоу по дням и часам.

Что нужно:

У радио есть программа например: "Новые релизы" идет 7 дней в неделю в одно и тоже время, дико не нравится, что для этого пришлось добавить целых 7 записей в базу. Хотелось бы оставить одну и поставить галочку или выбрать вместо дня недели "распределить на все дни".

Хочется, чтобы была возможность поставить не день недели, а например вся неделя. И добавленное шоу просто дублировалось на каждый день.

вот так выглядит

ca5bd49ded6f4eb19a4f5261172ed6cd.png

Код формирования таблицы:

<table cellpadding="0" cellspacing="0">

        <?php $dayweek = date('w');?>
        <tr>
            <th class="system">день/<br>время</th>
            <th <?php if ($dayweek == 1 ) { echo "class='today'"; } ?> >Понедельник</th>
            <th <?php if ($dayweek == 2 ) { echo "class='today'"; } ?> >Вторник</th>
            <th <?php if ($dayweek == 3 ) { echo "class='today'"; } ?> >Среда</th>
            <th <?php if ($dayweek == 4 ) { echo "class='today'"; } ?> >Четверг</th>
            <th <?php if ($dayweek == 5 ) { echo "class='today'"; } ?> >Пятница</th>
            <th <?php if ($dayweek == 6 ) { echo "class='today'"; } ?> >Суббота</th>
            <th <?php if ($dayweek == 0 ) { echo "class='today'"; } ?> >Воскресенье</th>
        </tr>

        <?php

        $weekly = array(
            1 => "Понедельник",
            2 => "Вторник",
            3 => "Среда",
            4 => "Четверг",
            5 => "Пятница",
            6 => "Суббота",
            7 => "Воскресенье"
        );
        $timeonair = array(
            array("time" => "10:00", "color" => "c2d697", "colortext" => "000"),
            array("time" => "11:00", "color" => "c2d697", "colortext" => "000"),
            array("time" => "12:00", "color" => "c2d697", "colortext" => "000"),
            array("time" => "13:00", "color" => "c2d697", "colortext" => "000"),
            array("time" => "14:00", "color" => "c2d697", "colortext" => "000"),
            array("time" => "15:00", "color" => "c2d697", "colortext" => "000"),
            array("time" => "16:00", "color" => "c2d697", "colortext" => "000"),
            array("time" => "17:00", "color" => "c2d697", "colortext" => "000"),
            array("time" => "18:00", "color" => "00afee", "colortext" => "000"),
            array("time" => "19:00", "color" => "00afee", "colortext" => "000"),
            array("time" => "20:00", "color" => "00afee", "colortext" => "000"),
            array("time" => "21:00", "color" => "00afee", "colortext" => "000"),
            array("time" => "22:00", "color" => "00afee", "colortext" => "000"),
            array("time" => "23:00", "color" => "00afee", "colortext" => "000"),
            array("time" => "00:00", "color" => "375d88", "colortext" => "fff")
        );

        $dbase = "";
        $user = "";
        $pass = "";
        try {
            $dbh = new PDO('mysql:host=localhost;dbname=' . $dbase, $user, $pass);

        } catch (PDOException $e) {
            echo $e->getMessage();
        }

        $rowspan2_array = array();
        for ($i = 0; $i < count($timeonair); $i++) {
            echo "<tr>";
            if ($i + 1 == count($timeonair))
                echo "<td style='background: #" . $timeonair[$i]["color"] . ";color: #" . $timeonair[$i]["colortext"] . ";'>{$timeonair[$i]['time']}<br>01:00</td>";
            else
                echo "<td style='background: #" . $timeonair[$i]["color"] . ";color: #" . $timeonair[$i]["colortext"] . ";'>{$timeonair[$i]['time']}<br>{$timeonair[$i+1]['time']}</td>";

            $rowset = $dbh->query("SELECT * FROM radioshow WHERE radioshow.timeonair = '{$timeonair[$i]['time']}' and active='yes'")->fetchAll(PDO::FETCH_ASSOC);

            for ($j = 1; $j <= count($weekly); $j++) {

                if (!isset($rowspan2_array["day" . $weekly[$j] . "time" . $timeonair[$i-1]['time']]))
                    $result = "<td>";
                else
                    $result = "";
                if ($rowset && !isset($rowspan2_array["day" . $weekly[$j] . "time" . $timeonair[$i-1]['time']])) {
                    foreach ($rowset as $row) {
                        if ($row["dayweek"] == $weekly[$j] && $row["time_limit"] == 60) {
                            $result = "<td class='radioshow' style='background: #99CCFF;'><a target='_blank'  href='http://gtiradio.ru/radioshow/".$row["radioshowurl"]."'>" . $row["title"] . "<br>with " . $row["author"] . "</a>";
                        } else if ($row["dayweek"] == $weekly[$j] && $row["time_limit"] == 120) {
                            $rowspan2_array["day" . $weekly[$j] . "time" . $timeonair[$i]['time']] = true;
                            $result = "<td class='radioshow' rowspan=2 style='background: #66CCFF;'><a target='_blank'  href='http://gtiradio.ru/radioshow/".$row["radioshowurl"]."'>" . $row["title"] . "<br>with " . $row["author"] . "</a>";
                        } else {
                            $result .= "&nbsp;";
                        }
                    }
                } else {
                    $result .= "&nbsp;";
                }

                if (!isset($rowspan2_array["day" . $weekly[$j] . "time" . $timeonair[$i-1]['time']]))
                    $result .= "</td>";
                echo $result;
            }

            echo "</tr>";
        }
        ?>
    </table>
  • Вопрос задан
  • 2300 просмотров
Пригласить эксперта
Ответы на вопрос 2
nalomenko
@nalomenko
Руководитель отдела разработок в студии «Lava»
Почитайте вот эту статью, думаю она Вас натолкнёт на решение поставленного вопроса.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы