Ru-Board.club
← Вернуться в раздел «Web-программирование»

» Mysql и PDO

Автор: oldVsevolod
Дата сообщения: 18.03.2016 10:40
есть скрипт календаря
почему-то mysql_query работает, а $db->query
поключение к базе через PDO есть, все обращения вне этого места обрабатывает, а вот именно в этом месте PDO и не срабатывает, прямо заколдованное.


Код:
<?php

include "db_calendar.php";

/* Функция генерации календаря */
function draw_calendar($month,$year){
/* Начало таблицы */
$calendar = '<table cellpadding="0" cellspacing="0" class="calendar">';
/* Заглавия в таблице */
$headings = array('Понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Воскресенье');
$calendar.= '<tr class="calendar-row"><td class="calendar-day-head">'.implode('</td><td class="calendar-day-head">',$headings).'</td></tr>';
/* необходимые переменные дней и недель... */
$running_day = date('w',mktime(0,0,0,$month,1,$year));
// $running_day = $running_day - 1;

if($running_day == 0) $running_day = 6;
else $running_day = $running_day - 1;

$days_in_month = date('t',mktime(0,0,0,$month,1,$year));
$days_in_this_week = 1;
$day_counter = 0;
$dates_array = array();
/* первая строка календаря */
$calendar.= '<tr class="calendar-row">';
/* вывод пустых ячеек в сетке календаря */
for($x = 0; $x < $running_day; $x++)
{
$calendar.= '<td class="calendar-day-np"> </td>';
$days_in_this_week++;
}
/* дошли до чисел, будем их писать в первую строку */
for($list_day = 1; $list_day <= $days_in_month; $list_day++)
{
$calendar.= '<td class="calendar-day"';
if (date(j)==$list_day) $calendar.=' bgcolor=#ddddff>'; else $calendar.='>';
/* Пишем номер в ячейку */
$calendar.= '<div class="day-number">'.$list_day.'</div>';
/** ЗДЕСЬ МОЖНО СДЕЛАТЬ MySQL ЗАПРОС К БАЗЕ ДАННЫХ! ЕСЛИ НАЙДЕНО СОВПАДЕНИЕ ДАТЫ СОБЫТИЯ С ТЕКУЩЕЙ - ВЫВОДИМ! **/

$running_date = $year.'-'.$month.'-'.$list_day;
$query = mysql_query("SELECT * FROM events WHERE date = '$running_date' ");
while($result = mysql_fetch_assoc($query))


/*    $query = $db->query("SELECT * FROM events WHERE date = '$running_date' ");
    while($result = $query->fetch())*/
        {
            
            $calendar.= '<p class="'.$result[event_name].' ('.$result[kto].')" id="test" name="test" onclick=alert(this.className)><font size=3 color=blue>'.$result['zagolovok'].'</font></br></p>';
        }



$calendar.= str_repeat('<p> </p>',2);

$calendar.= '</td>';
if($running_day == 6)
    {
$calendar.= '</tr>';
if(($day_counter+1) != $days_in_month)
     {
$calendar.= '<tr class="calendar-row">';
}
$running_day = -1;
$days_in_this_week = 0;
}
$days_in_this_week++; $running_day++; $day_counter++;
}
/* Выводим пустые ячейки в конце последней недели */
if($days_in_this_week < 8)
{
for($x = 1; $x <= (8 - $days_in_this_week); $x++)
    {
$calendar.= '<td class="calendar-day-np"> </td>';
}
}
/* Закрываем последнюю строку */
$calendar.= '</tr>';
/* Закрываем таблицу */
$calendar.= '</table>';

/* Все сделано, возвращаем результат */
return $calendar;

}
/* СПОСОБ ПРИМЕНЕНИЯ */

// Месяц

if (!$y) $y=date("Y");
if (!$mes)
    { $mes=date("m"); $mes_=date("m");}
    
else
    {
    if ($mes=="1") { $mes="01"; $mes_="01";}
    if ($mes=="2") { $mes="02"; $mes_="02";}
    if ($mes=="3") { $mes="03"; $mes_="03";}
    if ($mes=="4") { $mes="04"; $mes_="04";}
    if ($mes=="5") { $mes="05"; $mes_="05";}
    if ($mes=="6") { $mes="06"; $mes_="06";}
    if ($mes=="7") { $mes="07"; $mes_="07";}
    if ($mes=="8") { $mes="08"; $mes_="08";}
    if ($mes=="9") { $mes="09"; $mes_="09";}
    if ($mes>9) $mes_=$mes;
    }


if ($mes=="01") $mes="Январь";
if ($mes=="02") $mes="Февраль";
if ($mes=="03") $mes="Март";
if ($mes=="04") $mes="Апрель";
if ($mes=="05") $mes="Май";
if ($mes=="06") $mes="Июнь";
if ($mes=="07") $mes="Июль";
if ($mes=="08") $mes="Август";
if ($mes=="09") $mes="Сентябрь";
if ($mes=="10") $mes="Октябрь";
if ($mes=="11") $mes="Ноябрь";
if ($mes=="12") $mes="Декабрь";
//echo $mes;


$mes1_=$mes_-1;
if ($mes1_==0) {$mes1_="12"; $y_1=$y-1;} else $y_1=$y;
if ($mes1_=="01") $mes1="Январь";
if ($mes1_=="02") $mes1="Февраль";
if ($mes1_=="03") $mes1="Март";
if ($mes1_=="04") $mes1="Апрель";
if ($mes1_=="05") $mes1="Май";
if ($mes1_=="06") $mes1="Июнь";
if ($mes1_=="07") $mes1="Июль";
if ($mes1_=="08") $mes1="Август";
if ($mes1_=="09") $mes1="Сентябрь";
if ($mes1_=="10") $mes1="Октябрь";
if ($mes1_=="11") $mes1="Ноябрь";
if ($mes1_=="12") $mes1="Декабрь";

$mes2_=$mes_+1;
if ($mes2_==13) {$mes2_="1"; $y_2=$y+1;} else $y_2=$y;
if ($mes2_=="1") $mes2="Январь";
if ($mes2_=="2") $mes2="Февраль";
if ($mes2_=="3") $mes2="Март";
if ($mes2_=="4") $mes2="Апрель";
if ($mes2_=="5") $mes2="Май";
if ($mes2_=="6") $mes2="Июнь";
if ($mes2_=="7") $mes2="Июль";
if ($mes2_=="8") $mes2="Август";
if ($mes2_=="9") $mes2="Сентябрь";
if ($mes2_=="10") $mes2="Октябрь";
if ($mes2_=="11") $mes2="Ноябрь";
if ($mes2_=="12") $mes2="Декабрь";


// день недели

$nedel=jddayofweek ( cal_to_jd(CAL_GREGORIAN, date("m"),date("d"), date("Y")) , 0 );
if ($nedel==1) $nedel_b="пон";
if ($nedel==2) $nedel_b="вт";
if ($nedel==3) $nedel_b="ср";
if ($nedel==4) $nedel_b="чт";
if ($nedel==5) $nedel_b="пят";
if ($nedel==6) $nedel_b="суб";
if ($nedel==0) $nedel_b="вос";
//echo $nedel_b;

echo '<a href=/?mes='.$mes1_.'&y='.$y_1.'>'.$mes1.'</a> ';
echo '<font size=5><b>'.$mes.' '.$y.'</b></font>';
echo ' <a href=/?mes='.$mes2_.'&y='.$y_2.'>'.$mes2.'</a> ';
if (!$mes) echo draw_calendar(date("m"),$y);
echo draw_calendar($mes_,$y);



//<a href=javascript:window.alert("< ?php echo $nedel_b; ? >") id="test" name="test" ><font size=3 color=blue>вот</font></br></a>
?>
Автор: Mavrikii
Дата сообщения: 29.04.2016 01:34

Цитата:
а вот именно в этом месте PDO и не срабатывает, прямо заколдованное.

что значит "не срабатывает"? ничего не возвращается или выдает ошибку запроса?
запрос покажите и содержимое базы.
и забывайте про mysql расширение - его скоро не будет, используйте mysqli
Автор: nuker96
Дата сообщения: 29.04.2016 19:28
http://php.net/manual/ru/pdostatement.debugdumpparams.php

Страницы: 1

Предыдущая тема: PHP: игнорирование if или переход к else


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.