Форум русскоязычного сообщества Ubuntu


Автор Тема: php+mysql= дни рождения  (Прочитано 1058 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ulan44

  • Автор темы
  • Участник
  • *
  • Сообщений: 166
    • Просмотр профиля
php+mysql= дни рождения
« : 12 Июнь 2013, 04:58:50 »
Доброго времени суток камрады.
Вообщем есть бд мускул, в ней хранятся данные о днях рождениях, вроде все работает как надо но вот проблема с выводом.
Во вложении скрин, как на данный момент выводит таблицу из бд.

запрос в бд
$query_res = $db->sql_query("SELECT users.id AS \"id_user\", users.id_group, users.id_post, users.id_fil, users.user_name, users.day_birth, users.day_job, date_format(users.day_job, '%d') AS \"dayjob\", users.day_quit,
                                    users_groups.group_name, users_groups_post.id, users_groups_post.post AS \"posts\", filial.filial AS \"filial\",
                                    (YEAR(CURRENT_DATE)-YEAR(day_job))-(RIGHT(CURRENT_DATE,5)<RIGHT(day_job,5)) AS \"year\",
                                    (MONTH(CURRENT_DATE)-MONTH(day_job))-(RIGHT(CURRENT_DATE,3)<RIGHT(day_job,3)) AS \"month\",
                                    (DAY(CURRENT_DATE)-DAY(day_job))-(LEFT(CURRENT_DATE,8)<LEFT(day_job,8)) AS \"day\",

                                    (YEAR('$date[1]')-YEAR(day_job))-(RIGHT(day_job,5)<RIGHT(day_job,5)) AS \"year_f\",
                                    (MONTH('$date[1]')-MONTH(day_job))-(RIGHT(day_job,3)<RIGHT(day_job,3)) AS \"month_f\",
                                    (DAY('$date[1]')-DAY(day_job))-(LEFT(day_job,8)<LEFT(day_job,8)) AS \"day_f\"

                             FROM users, users_groups, users_groups_post, filial
                             WHERE (users.id_group=users_groups.id and users.id_post=users_groups_post.id and users.id_fil=filial.id $sql_where $sql_where_post $sql_where_fil) ORDER BY users.id_group, users.id");
        $users = array();
            while ($users[] = $db->sql_fetchrow());
            unset($users[count($users)-1]);

}

вывод данных
<table class="data" width="750" cellspacing="2" cellpadding="2">
        <tr align="center">
            <td class="head">{$lang.today1} {$date_arr[2]|date_format:"%e.%m.%Y"}</td>
            <td class="head">{$lang.today2} {$date_arr[3]|date_format:"%e.%m.%Y"}</td>
            <td class="head">{$lang.today3} {$date_arr[4]|date_format:"%e.%m.%Y"}</td>
            <td class="head">{$lang.today4}</td>
        </tr>

{section name=user loop=$birth}
{if $smarty.section.user.iteration % 2 == 0}
    {assign var=classname value="data4"}
        {else}
    {assign var=classname value="data4"}
{/if}
        <tr>

            {if $date_arr[2]|date_format:"%e" eq $birth[user].day}
            <td class="{$classname}" width="185">{$birth[user].user_name} <b>\</b> {$birth[user].year} {$birth[user].year|declension:'год; года; лет':'ru'}
                                                                            <b>\</b> {$birth[user].fil}
                                                                            <b>\</b> {$birth[user].post}</td>
            {else}
            <td class="{$classname}" width="185"></td>
            {/if}

            {if $date_arr[3]|date_format:"%e" eq $birth[user].day}
            <td class="{$classname}" width="185">{$birth[user].user_name} <b>\</b> {$birth[user].year} {$birth[user].year|declension:'год; года; лет':'ru'}
                                                                            <b>\</b> {$birth[user].fil}
                                                                            <b>\</b> {$birth[user].post}</td>
            {else}
            <td class="{$classname}" width="185"></td>
            {/if}

            {if $date_arr[4]|date_format:"%e" eq $birth[user].day}
            <td class="{$classname}" width="185">{$birth[user].user_name} <b>\</b> {$birth[user].year} {$birth[user].year|declension:'год; года; лет':'ru'}
                                                                            <b>\</b> {$birth[user].fil}
                                                                            <b>\</b> {$birth[user].post}</td>
            {else}
            <td class="{$classname}" width="185"></td>
            {/if}

            {if $date_arr[5]|date_format:"%e" eq $birth[user].day}
            <td class="{$classname}" width="185">{$birth[user].user_name} <b>\</b> {$birth[user].year} {$birth[user].year|declension:'год; года; лет':'ru'}
                                                                            <b>\</b> {$birth[user].day_birth|date_format:"%e %b"}
                                                                            <b>\</b> {$birth[user].post}</td>

            {elseif $date_arr[6]|date_format:"%e" eq $birth[user].day}
            <td class="{$classname}" width="185">{$birth[user].user_name} <b>\</b> {$birth[user].year} {$birth[user].year|declension:'год; года; лет':'ru'}
                                                                            <b>\</b> {$birth[user].day_birth|date_format:"%e %b"}
                                                                            <b>\</b> {$birth[user].post}</td>

            {elseif $date_arr[7]|date_format:"%e" eq $birth[user].day}
            <td class="{$classname}" width="185">{$birth[user].user_name} <b>\</b> {$birth[user].year} {$birth[user].year|declension:'год; года; лет':'ru'}
                                                                            <b>\</b> {$birth[user].day_birth|date_format:"%e %b"}
                                                                            <b>\</b> {$birth[user].post}</td>

            {elseif $date_arr[8]|date_format:"%e" eq $birth[user].day}
            <td class="{$classname}" width="185">{$birth[user].user_name} <b>\</b> {$birth[user].year} {$birth[user].year|declension:'год; года; лет':'ru'}
                                                                            <b>\</b> {$birth[user].day_birth|date_format:"%e %b"}
                                                                            <b>\</b> {$birth[user].post}</td>

            {elseif $date_arr[9]|date_format:"%e" eq $birth[user].day}
            <td class="{$classname}" width="185">{$birth[user].user_name} <b>\</b> {$birth[user].year} {$birth[user].year|declension:'год; года; лет':'ru'}
                                                                            <b>\</b> {$birth[user].day_birth|date_format:"%e %b"}
                                                                            <b>\</b> {$birth[user].post}</td>

            {elseif $date_arr[10]|date_format:"%e" eq $birth[user].day}
            <td class="{$classname}" width="185">{$birth[user].user_name} <b>\</b> {$birth[user].year} {$birth[user].year|declension:'год; года; лет':'ru'}
                                                                            <b>\</b> {$birth[user].day_birth|date_format:"%e %b"}
                                                                            <b>\</b> {$birth[user].post}</td>

            {elseif $date_arr[11]|date_format:"%e" eq $birth[user].day}
            <td class="{$classname}" width="185">{$birth[user].user_name} <b>\</b> {$birth[user].year} {$birth[user].year|declension:'год; года; лет':'ru'}
                                                                            <b>\</b> {$birth[user].day_birth|date_format:"%e %b"}
                                                                            <b>\</b> {$birth[user].post}</td>

            {else}
            <td class="{$classname}" width="185"></td>
            {/if}

        </tr>
{/section}

</table>

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: php+mysql= дни рождения
« Ответ #1 : 12 Июнь 2013, 12:45:49 »
Так в чем проблема с выводом?

Оффлайн ulan44

  • Автор темы
  • Участник
  • *
  • Сообщений: 166
    • Просмотр профиля
Re: php+mysql= дни рождения
« Ответ #2 : 13 Июнь 2013, 05:57:16 »
Проблема в том, что таблица корявая  :coolsmiley: по дням конечно отображает. но хотелось бы более адекватную таблицу без пустых ячеек.

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: php+mysql= дни рождения
« Ответ #3 : 13 Июнь 2013, 17:06:10 »
Шаблон какой-то странный, почему повторяющиеся элементы не в цикле?

Можно сделать 4 запроса на каждый день, и выводить их в 4 таблицы. Т.е. сделали запрос на сегодня, вывели в таблицу (width=25%), вопрос на завтра в следующую таблицу располагающуюся справа от первой.

Можно попробовать сделать уже готовую таблицу в SQL.

Можно заполнять шаблон таблицы из java.

 

Страница сгенерирована за 0.292 секунд. Запросов: 24.