Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите реализовать логику календаря 
:(
    Опции темы
bulat01
Дата 25.7.2011, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 26.10.2010

Репутация: нет
Всего: 0



Привет всем спецам по PHP.
У меня проблема

если прогнать код , то он вытаскивает календарь (текущий месяц например 2011 July)
при кликании на какую либо дату - он вытаскивает данные из БД mysql.

есть еще линк на СЛЕДУЮЩИЙ МЕСЯЦ - кликаю его - и появляется календарь следующего месяца (2011 August).
При кликании даты - вытаскивает данные этого числа в августе, но календарь почему то меняется на июль и заголовок тоже меняется на Июль 2011.
Так и не понял почему календарь поменялся на июль. В чем может быть проблема?

Посоветуйте.
и второй вопрос - не подскажите быстрый способ метода детального трассировки php скрипта - если я хочу знать что происходит внутри скрипта.
Спасибо!

вот код:

Код

<?php

if (isset($_GET['month'])){
      $month = (int)$_GET['month'];
      $this_mon = $_GET['$this_mon+1']; 
}
else {
      $month = 0;
}


if ($month == "" | $month < 1) {
   $month = 0; 
   $othermonth = 1; 
}
else {  
   $month = 1; 
   $othermonth = 0;    
}
 
 
if ($month == 0) { 
    $thispage = "this month"; 
    $otherpage = "next month"; 
}
else { 
    $thispage = "next month"; 
    $otherpage = "this month"; 
}


$date_time_array = getdate(time());
    $this_month = $date_time_array["month"];
    $this_year  = $date_time_array["year"];
    $this_mon   = $date_time_array["mon"];

if ($month==1){  
    $next_month_stamp = mktime(1,1,1,$this_mon + 1,1,$this_year);
    $date_time_array = getdate($next_month_stamp);
    $this_month = $date_time_array["month"];
    $this_year  = $date_time_array["year"];
    $this_mon   = $date_time_array["mon"];
 }
    
    print "<center><h1>$this_month $this_year</h1>Go to <a href=\"univer_lections.php?month=$othermonth\">[$otherpage]</a>";
    echo "<br>";
    echo "Month var: " .$month;
    echo "<br>";

    $first_day_stamp = mktime(0,0,0,$this_mon,1,$this_year);    //hour, minute, second, this month, 1st day of month, this year
    $date_time_array = getdate($first_day_stamp);                //got genarated date format from system to attach to massive $date_time_array
    $firstwkday = $date_time_array["wday"] + 1;                //Figure out week day on which the first day of current month falls on.
    print "Firstweekday: " .$firstwkday;
    print "<br>";

    //find the total days of the month. figure last day of a month as: last day of this month = day zero of next month 
    $last_day_stamp = mktime(0,0,0,$this_mon + 1,0,$this_year);
    $date_time_array = getdate( $last_day_stamp );
    $daysinmonth = $date_time_array["mday"];
    print "Days In Month: " .$daysinmonth;

 print "<P><table align=center border=1>   
 <tr>
 <th>Sun</th>
 <th>Mon</th>
 <th>Tue</th>
 <th>Wed</th>
 <th>Thu</th>
 <th>Fri</th>
 <th>Sat</th>
 </tr>";

 $date=1;    // months are either 5 or 6 weeks, but 3 weeks if Apr 1 is a Sunday doesn't happen often.
 $maxwk = 5;
 //$firstwkday = 6, $daysinmonth = 31;
 if (($firstwkday + $daysinmonth -1) > 35) { 
    $maxwk = 6 ;
  }
   
   $events = range (1, $daysinmonth);
   for ($week=1; $week <= $maxwk; $week++) { //iteration on 6 weeks
    // the newlines are just for page weeks formatting 
    
    echo "<tr>\n";    //build table
    for($wkday=1; $wkday <=7; $wkday++) { //iteration on 7 days
     
     
     if( ($week>1) || ($wkday>=$firstwkday) ){
       print "<td height=30px width=30px align=\"center\">"; //cells building

           if ($date <= $daysinmonth) {            
               
                  if (in_array("$date", $events)) { 
                  //$this_mon = date("m");
                    print "<a href=\"univer_lections.php?year=$this_year&mon=$this_mon&date=$date\">$date</a>";
                  }
             
           $date++;
           }       
           else {            
              echo "-- ";
           }                
       echo "</td>\n";
     }           
     else {              
       print "<td height=30px width=30px align=\"center\">-- ";
       echo "</td>\n";
     }                
   }         
   echo "</tr>\n";
 }           
 print "</table></center>";
 

 
echo "<br>";
echo "<br>";
echo "<br>";
echo "<br>";
 
$year = $_GET['year'];
$month = $_GET['mon'];
$date = $_GET['date'];
  
//session_start();
$link = mysql_connect("localhost","root","xxxxxxx") or die(mysql_error());
mysql_select_db("university") or die (mysql_error());

$generated_date =  $year . "-" . $month . "-" . $date;
//print $generated_date;

//select needed data from database according to date and month chosen in calendar
$query = "SELECT lection_seq,lection_name,lection_by,lection_location,lection_date,group_number FROM lections 
where lection_date = '$generated_date'";

//$result = mysql_query($query,$link) or die(mysql_error());

$result = mysql_query($query,$link) or die("A MySQL error has occurred.<br />Your Query: " . $your_query . "<br /> Error: (" . mysql_errno() . ") " . mysql_error());

$num_lections = mysql_num_rows($result);

$lections_heading=<<<EOD
<h2><center>Lections View</center></h2>
<table width='70%' border='1' cellpadding='2' cellspacing='2' align='center'>
<tr>
<th>Lection Sequence</th>
<th>Lection Name</th>
<th>Lection By</th>
<th>Lection Location</th>
<th>Lection Date</th>
<th>Group Number</th>
</tr>
EOD;


while($row = mysql_fetch_array($result))
{
    $lection_sequence = $row['lection_seq'];
    $lection_name = $row['lection_name'];
    $lection_by = $row['lection_by'];
    $lection_location = $row['lection_location'];
    $lection_date = $row['lection_date'];
    $group_number = $row['group_number'];

$lections_heading.=<<<EOD
<tr>
    <td>$lection_sequence</td>
    <td>$lection_name</td>
    <td>$lection_by</td>
    <td>$lection_location</td>
    <td>$lection_date</td>
    <td>$group_number</td>
</tr>
EOD;
}


$lections_footer="</table>";

$lection_main=<<<LECTION
   $lections_heading
   $lections_footer
LECTION;

echo $lection_main;
 
 ?>




PM MAIL   Вверх
Mpak
Дата 26.7.2011, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 12.11.2006

Репутация: нет
Всего: 7



> $this_mon = $_GET['$this_mon+1']; 
из одинарных кавычек php не вытащит значение переменной. правильней будет $_GET[$this_mon+1];
при использовании одинарных кавычек интерпретатор выведет все в таком же виде, в каком текст заключен в эти кавычки, а вот при использовании двойных, он вместо переменных выведет их значение.

Это сообщение отредактировал(а) Mpak - 26.7.2011, 08:30


--------------------
В любой откомпилированной программе есть, по крайней мере, одна ошибка...
P.S. А у меня их минимум две...
PM MAIL ICQ   Вверх
NFL
Дата 26.7.2011, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Mpak, правильнее тогда уж  $_GET["$this_mon++"]; 

Но я немного не понял.... Нафига так извращаться?
$_GET['month']+1

Тогда УРЛЫ будут вида /script.php?month=2
PM MAIL   Вверх
Mpak
Дата 27.7.2011, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 12.11.2006

Репутация: нет
Всего: 7



Цитата(NFL @  26.7.2011,  17:15 Найти цитируемый пост)
правильнее тогда уж  $_GET["$this_mon++"]; 


Согласен, ++ лучше чем +1  smile 

NFL, я вообще смысла не понял в логике с этими месяцами smile



--------------------
В любой откомпилированной программе есть, по крайней мере, одна ошибка...
P.S. А у меня их минимум две...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0667 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.