www.state-it.info

Gran base de respuestas a las preguntas de los desarrolladores
Header decor

la Salida de calendario en PHP con la selección de COUNT(*) de la base de datos MySQL. Como?

KazinPro 2016-12-24 18:17:54

Buenas noches a todos.

Durante la ejecución del proyecto se enfrentó con el siguiente:
Hay una tabla en la que se escriben los datos durante la grabación la fecha, cuando esta entrada se introdujo.

Pero es necesario sacar el calendario del mes actual con la indicación(al lado de cada mes) el número de registros que se han realizado en los datos de los días.

No puedo implementar esto. El calendario ha encontrado en la inmensidad de internet, pero no tienen la funcionalidad deseada(la salida del número de registros) y para mí no sobrescribir :(

UPD 1:

<?php
//Индивидуальные настройки скрипта
$ac_font_size = "10";           //Размер шрифта (только число)
$ac_font_color = "black";       //Цвет шрифта (в любом представлении: название, RGB, etc. [html-формат])
$ac_main_color = "white";       //Основной цвет календаря (Обычные дни) (аналогично цвету шрифта)
$ac_second_color = "silver";    //Второстепенный цвет календаря (аналогично цвету шрифта)
// (Текущий день, заголовок календаря)
$ac_navigator = false;           //Вывод строки навигации по месяцам (true/false)
//Массив названий месяцев
$mon_name = array
(
    "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь",
    "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"
);
//Массив продолжительностей месяцев
$nod = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
//Определение месяца и года для календаря
if (!isset($month)) {
    $ac_month = date("n");
    $ac_year = date("Y");
    $ac_j_dom = date("j");
    $ac_j_dow = date("w");
} else {
    list ($ac_month, $ac_year) = explode("-", $month);
    if ($ac_year < 1980) $ac_year = 1980;
    if ($ac_year > 2030) $ac_year = 2030;
    if ($ac_month != date("n") or $ac_year != date("Y")) {
        $ac_j_dom = 1;
        $ac_j_dow = date("w", mktime(0, 0, 0, $ac_month, 1, $ac_year));
    } else {
        $ac_j_dom = date("j");
        $ac_j_dow = date("w");
    }
}
//Корректировка продолжительности февраля в високосном году
if ($ac_year % 4 == 0) {
    $nod[1] = 29;
}
//Определение предыдущих/следующих месяцев/годов
$temp_month = $ac_month + 1;
if ($temp_month != 13) {
    $ac_month_next = "$temp_month-$ac_year";
} else {
    $temp_year = $ac_year + 1;
    $ac_month_next = "1-$temp_year";
}
$temp_month = $ac_month - 1;
if ($temp_month != 0) {
    $ac_month_prev = "$temp_month-$ac_year";
} else {
    $temp_year = $ac_year - 1;
    $ac_month_prev = "12-$temp_year";
}
$temp_year = $ac_year + 1;
$ac_year_next = "$ac_month-$temp_year";
$temp_year = $ac_year - 1;
$ac_year_prev = "$ac_month-$temp_year";
//Определение названия месяца
$ac_mon = $mon_name[$ac_month - 1];
//Корректировка номера дня недели из западно-европейской в русскую
if ($ac_j_dow == 0) $ac_j_dow = 7;
//Определение дня недели первого дня месяца
$ac_1_dow = $ac_j_dow - ($ac_j_dom % 7 - 1);
if ($ac_1_dow < 1) $ac_1_dow += 7;
if ($ac_1_dow > 7) $ac_1_dow -= 7;
//Определение числа дней месяца
$ac_nod = $nod[$ac_month - 1];
//Определение количества недель в месяце
$ac_now = 5;
if ($ac_1_dow - 1 + $ac_nod < 29) {
    $ac_now = 4;
} else if ($ac_1_dow - 1 + $ac_nod > 35) {
    $ac_now = 6;
}
//Предотвращение вывода текущего дня для нетекущего месяца
if ($ac_month != date("n") or $ac_year != date("Y")) $ac_j_dom = -10;
//Вывод шапки календаря
echo "
<table class='table table-bordered'>
<tr bgcolor=$ac_second_color>
    <td colspan=7 align=center>
        $ac_mon $ac_year
    </td>
</tr>
<tr bgcolor=$ac_second_color>
    <td>Пн</td><td>Вт</td><td>Ср</td><td>Чт</td><td>Пт</td><td>Сб</td><td>Вс</td>
    ";

//Вывод содержимого календаря
for ($i = 0; $i < $ac_now * 7; $i++) {
    if ($i % 7 == 0) {
        echo "</tr>\n<tr align=center bgcolor=$ac_main_color>\n\t";
    }
    if ($i - $ac_1_dow + 2 != $ac_j_dom) {
        echo "<td>";
    } else echo "<td bgcolor=$ac_second_color>";
    if (($i < $ac_1_dow - 1) || ($i > $ac_nod + $ac_1_dow - 2)) {
        echo "&nbsp;";
    } else {

        $zzz = $i - $ac_1_dow + 2;
        echo "$zzz";
    }
    echo "</td>\n\t";
}
//Строка навигации по месяцам
if (!$ac_navigator)
    echo "
</tr>
</table>";

Total answers: 1

Nc_Soft 2016-12-24 18:26:55

select count(id), created_at, DATE_FORMAT(created_at, '%Y-%m-%d') as fmt from tbl group by fmt

KazinPro 2016-12-24 18:43:05

Como ensamblar una consulta yo sé ) Actualizó su pregunta(UPD 1), donde allí insertar SELECT?


Preguntas relacionadas:

Footer decor

© www.state-it.info | Base of answers to questions for developers and programmers.