Re: Re: DATE Questions
| From: | Fred | Date: | Tue, 20 Nov 2001 19:36:01 +0000 |
| Subject: | Re: Re: DATE Questions | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-75278@lists.php.net to get a copy of this message | ||
Glad to help. I'd be interested to know how it works out.
Fred
Sjoerd Van Oosten <SvOosten@esites.nl> wrote in message
news:C9F89DA57491D511BDAF00E0180C348103BFF1@ESADM01...
> Fred thanks a lot, you really helped me out!
>
> ________________________________________
> Sjoerd van Oosten
> Digitaal vormgever svoosten@esites.nl
> Datamex E-sites B.V.
> http://www.esites.nl
> Minervum 7368 Telefoon: (076) 5 730 730
> 4817 ZH BREDA Telefax: (076) 5 877 757
> _______________________________________
>
>
> -----Oorspronkelijk bericht-----
> Van: Fred [mailto:fred.nospam.please@querymagic.com]
> Verzonden: dinsdag 20 november 2001 18:18
> Aan: php-general@lists.php.net
> Onderwerp: Re: [PHP] Re: DATE Questions
>
>
> Alright. I was recently writting an attendance application for a school.
I
> wanted to beable to display attendance information from mysql in a
calendar,
> but I did not want to have to write the calendar script from scratch. I
> must have looked at thirty or so calendar scripts before I found this one:
> http://www.stevenrebello.f2s.com/ . I chose this calendar
> because it
looks
> nice, but is very simple and does not contain a bunch of stuff I don't
need.
>
> I rewrote the script as a function and changed it to fit my needs. I will
> include the source here so that you can see how I made it work with mysql.
> There are two places where I made changes. First, you can see that I
> changed the code for generating the links to last month and next month.
You
> will need to do this in order to pass the correct variables to the page
that
> contains the function.
>
> I then added the code for priting my dadabase information. Most of the
code
> for formatting the data for each day is in a seperate function that gets
> called once for each day on the calendar. You will notice that I have the
> database code in there twice. This is because I did things a little
> differently for the current day. This is not necessary, but you will have
> to rearrange the code a bit if you still want to highlight the current
day.
>
> Good Luck.
> function AttendanceCalendar($mon,$year,$Student,$Class)
> {
> global $dates, $first_day, $start_day, $Attend;
>
> $first_day = mktime(0,0,0,$mon,1,$year);
> $start_day = date("w",$first_day);
> $res = getdate($first_day);
> $month_name = $res["month"];
> $no_days_in_month = date("t",$first_day);
>
> file://If month's first day does not start with first Sunday, fill table
> cell with a space
> for ($i = 1; $i <= $start_day;$i++)
> $dates[1][$i] = " ";
>
> $row = 1;
> $col = $start_day+1;
> $num = 1;
> while($num<=31)
> {
> if ($num > $no_days_in_month)
> break;
> else
> {
> $dates[$row][$col] = $num;
> if (($col + 1) > 7)
> {
> $row++;
> $col = 1;
> }
> else
> $col++;
> $num++;
> }//if-else
> }//while
> $mon_num = date("n",$first_day);
> $temp_yr = $next_yr = $prev_yr = $year;
>
> $prev = $mon_num - 1;
> $next = $mon_num + 1;
>
> file://If January is currently displayed, month previous is December of
> previous year
> if ($mon_num == 1)
> {
> $prev_yr = $year - 1;
> $prev = 12;
> }
>
> file://If December is currently displayed, month next is January of next
> year
> if ($mon_num == 12)
> {
> $next_yr = $year + 1;
> $next = 1;
> }
>
> echo "<TABLE BORDER=\"1\" WIDTH=\"100%\"
> CELLSPACING=\"0\"
> BORDERCOLOR=\"cc3333\">";
>
> echo "\n<TR ALIGN='center'><TD BGCOLOR='white'> ".
> "<A
>
HREF=\"$PHP_SELF?Module=Student&Student=$Student&Class=$Class&month=$prev&ye
> ar=$prev_yr\" STYLE=\"text-decoration:
> none\"><B><<</B></A> </TD>".
> "<TD COLSPAN=5 BGCOLOR='cc3333'><B><FONT
> Color='ffffff'>".date("F",$first_day)."
> ".$temp_yr."</B></FONT></TD>".
> "<TD BGCOLOR='white'> ".
> "<A
>
HREF=\"$PHP_SELF?Module=Student&Student=$Student&Class=$Class&month=$next&ye
> ar=$next_yr\" STYLE=\"text-decoration:
> none\"><B>>></B></A> </TD></TR>";
>
> echo "\n<TR
>
> ALIGN='center'><TD><B>Sun</B></TD><TD><B>Mon</B></TD><TD><B>Tue</B></TD>";
> echo
>
"<TD><B>Wed</B></TD><TD><B>Thu</B></TD><TD><B>Fri</B></TD><TD><B>Sat</B></TD
> ></TR>";
> echo "<TR><TD COLSPAN=7> </TR><TR
> ALIGN='center'>";
>
> $end = ($start_day > 4)? 6:5;
> for ($row=1;$row<=$end;$row++)
> {
> for ($col=1;$col<=7;$col++)
> {
> if ($dates[$row][$col] == "")
> $dates[$row][$col] = " ";
>
> if (!strcmp($dates[$row][$col]," "))
> $count++;
>
> $t = $dates[$row][$col];
>
> file://If date is today, highlight it
> if (($t == date("j")) && ($mon == date("n")) &&
> ($year ==
date("Y")))
> {
> file://echo "\n<TD
> BGCOLOR='cccccc'>".$t."</TD>";
> echo "\n<TD bgcolor=\"cccccc\">";//.(($t == " " )?
> " "
> :$t)."</TD>";
>
> $Result = mysql_query("SELECT Attend, Credit, Date FROM Attendance
> WHERE StudentID = \"$Student\" AND SectionNo = \"$Class\" AND MONTH(Date)
=
> \"$mon\" AND YEAR(Date) = \"$year\" AND DAYOFMONTH(Date) =
> \"$t\"",
> MakeConn())
> or die (mysql_error());
>
> if (mysql_num_rows($Result) > 0)
> {
> $DataRow = mysql_fetch_assoc($Result);
> extract ($DataRow);
> PrintDay($Attend,$Credit,$t,$mon,$year);
> mysql_free_result($Result);
> }
>
> echo "</TD>";}
> else {
> if ($t == " ") {
> echo "\n<TD>";
> echo "</TD>";
> }else{
> file://If the date is absent ie after 31, print space
> echo "\n<TD width=\"60\" height=\"60\">";//.(($t ==
> " " )? " "
> :$t)."</TD>";
>
> $Result = mysql_query("SELECT Attend, Credit, Date FROM Attendance
> WHERE StudentID = \"$Student\" AND SectionNo = \"$Class\" AND MONTH(Date)
=
> \"$mon\" AND YEAR(Date) = \"$year\" AND DAYOFMONTH(Date) =
> \"$t\"",
> MakeConn())
> or die (mysql_error());
>
> if (mysql_num_rows($Result) > 0)
> {
> $DataRow = mysql_fetch_assoc($Result);
> extract ($DataRow);
> PrintDay($Attend,$Credit,$t,$mon,$year);
> mysql_free_result($Result);
> }
> else
> {
> echo $t;
> }
>
>
>
> echo "</TD>";}}
> }// for -col
>
> if (($row + 1) != ($end+1))
> echo "</TR>\n<TR ALIGN='center'>";
> else
> echo "</TR>";
> }// for - row
> echo "\n</TABLE>";
> }
>
>
>
>
> Sjoerd Van Oosten <SvOosten@esites.nl> wrote in message
> news:C9F89DA57491D511BDAF00E0180C348103BFED@ESADM01...
> > Of course i'm very interested!
> >
> > Greetings,
> >
> > ________________________________________
> > Sjoerd van Oosten
> > Digitaal vormgever svoosten@esites.nl
> > Datamex E-sites B.V.
> > http://www.esites.nl
> > Minervum 7368 Telefoon: (076) 5 730 730
> > 4817 ZH BREDA Telefax: (076) 5 877 757
> > _______________________________________
> >
> >
> > -----Oorspronkelijk bericht-----
> > Van: Fred [mailto:fred.nospam.please@querymagic.com]
> > Verzonden: dinsdag 20 november 2001 9:35
> > Aan: php-general@lists.php.net
> > Onderwerp: [PHP] Re: DATE Questions
> >
> >
> > If you are interested I can show you a script that will generate a
monthly
> > calendar based on the current date. It has links to go forward and
> backward
> > by month. It is a fairly simple script that I found at hotscripts.com,
> but
> > it has amazing potential. I have used it as the basis for some rather
> > advanced database applications.
> >
> > Fred
> >
> >
> > Sjoerd Van Oosten <SvOosten@esites.nl> wrote in message
> > news:C9F89DA57491D511BDAF00E0180C348103BFE5@ESADM01...
> > >
> > > Hello,
> > >
> > > I'm working on a project planning system and what i want to do is
making
> a
> > > sort of table structure with an overview form today till a month
later.
> > All
> > > the projects that are between these dates must be viewed.
> > >
> > > Right now i have the following questions:
> > >
> > > - How can i determine how much days are between say 20 november and 20
> > > december dynamically?
> > > - How can i make an array containing the values of these dates?
> > > - How do i make a for loop and print these values.
> > >
> > > I hope somone can help me out. Thanks.
> > > ________________________________________
> > > Sjoerd van Oosten
> > > Digitaal vormgever svoosten@esites.nl
> > > Datamex E-sites B.V.
> > > http://www.esites.nl
> > > Minervum 7368 Telefoon: (076) 5 730 730
> > > 4817 ZH BREDA Telefax: (076) 5 877 757
> > > _______________________________________
> > >
> >
> >
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net
> > For additional commands, e-mail: php-general-help@lists.php.net
> > To contact the list administrators, e-mail: php-list-admin@lists.php.net
>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net
> For additional commands, e-mail: php-general-help@lists.php.net
> To contact the list administrators, e-mail: php-list-admin@lists.php.net