zelllibin Posted March 6, 2009 Share Posted March 6, 2009 I need help to fix this index error and index offset error... <html> <head> </head> <body> <?php // The include file for PEAR::MDB2 require_once 'MDB2.php'; // Initializing the Global variables $empname=array("Ng Boon Kiat","Tan Kok Kang","Chua Cheng Ann","Cai Yong","Rex Tumewah","Tan Chuon Hee", "Wong Su-Yin","Aw Swee Keng","Lim Yen","Rudy Karyadi","Denny Prasetya","Tan Wee-Aik (Jac)","Roy Ong", "Lorical Goh","Wong Khai Thye","Tan Han Siong","Azreen bin Osman","Mohamed Ibrahim","Kelvin Wong", "Wilson Goh","Lee Yat Wah","Foang Wan Heng","Ter Khwee Heng","Diego Alonso","Shabbar Jambughodawala", "Noh Bin Salleh","Joshua Lee Joo Eng","Leon Ho","Shiley Chua","Susan Seow"); // Get the Selected year if (isset($_POST['SelectYear'])) $SEL_YEAR=$_POST['SelectYear']; else $SEL_YEAR=date("Y"); $CURR_YEAR=date("Y"); // Get the Current Month in numeric form if (isset($_POST['SelectMonth'])) $CURR_MONTH=$_POST['SelectMonth']; else $CURR_MONTH=date("m"); // Convert the Current Month into words $jd2=cal_to_jd(CAL_GREGORIAN,(int)$CURR_MONTH, 1,(int)$SEL_YEAR); $CURR_MONTH_WORDS=jdmonthname($jd2,1); $CURR_MONTH_WORDS=strtoupper($CURR_MONTH_WORDS); echo "<b><font face='Garamond' color='#0080FF'>LEAVE CALENDAR FOR $CURR_MONTH_WORDS, $SEL_YEAR</b>"; echo "</br>"; echo "</br>"; //Get the Current Date in numberic form $CURR_DATE=date("d"); $DAYS_IN_CURR_MONTH=cal_days_in_month(CAL_GREGORIAN,$CURR_MONTH,$SEL_YEAR); /* National Holidays for 2008 1 Jan New Year's Day. 7-8 Feb Chinese New Year. 21 Mar Good Friday. 1 May Labour Day. 19 May Vesak Day (Birth of the Buddha). 9 Aug National Day. 1 Oct Hari Raya Puasa (End of Ramadan). 28 Oct Deepavali. 8 Dec Hari Raya Haji (Feast of the Sacrifice). 25 Dec Christmas Day */ // Declaring National Holidays // The declaration is done in such a way that first you declare the date and then the month of holiday $NATIONAL_HOLIDAYS=array("1","1", "7","2", "8","2", "21","3", "1","5", "19","5", "9","8", "1","10", "28","10", "8","12", "25","12"); /* AID ACTIVITYTYPE 1 Leave(planned/projected) 2 Leave(approved/confirmed) 3 Overseas Training/Meeting 4 Overseas Assignment 5 Local Training 6 Saturday 7 Sunday 8 Public Holidays 9 National Service */ $AID_ABBREV=array("","LPP","LAC","OTM","OSA","LTR","SAT","SUN","NHO","NSE"); /*for($i=0;$i<sizeof($AID_ABBREV);$i++) { echo $AID_ABBREV[$i]; echo "</br>"; } */ /* Make the Calendar according to each day corresponding to a column.Each row corrresponds to an employee */ for($i=0;$i<=sizeof($empname);$i++) { for($j=0;$j<($DAYS_IN_CURR_MONTH+1);$j++) { if($i==0 && $j==0) $cal[$i][$j]="NAME"; if($i==0 && $j!=0) $cal[$i][$j]=$j; if($i!=0 && $j==0) $cal[$i][$j]=$empname[$i-1]; if($i!=0 && $j!=0) { // Finding out the Day of Week $jd=cal_to_jd(CAL_GREGORIAN,$CURR_MONTH,$j,$SEL_YEAR); $DAY_OF_WEEK=jddayofweek($jd,1); // Mapping Saturdays and Sundays onto the calendar if($DAY_OF_WEEK=="Sunday") $cal[$i][$j]="SUN"; elseif($DAY_OF_WEEK=="Saturday") $cal[$i][$j]="SAT"; // Mapping the National Holidays into the Calendar // The Mapping is done only for the Current year if($SEL_YEAR==$CURR_YEAR) { for($k=0;$k<sizeof($NATIONAL_HOLIDAYS);$k+=2) { $x=$k+1; if($NATIONAL_HOLIDAYS[$x]==$CURR_MONTH) { if($NATIONAL_HOLIDAYS[$k]==$j) $cal[$i][$j]="NHO"; } } } } } } if($SEL_YEAR>$CURR_YEAR) $CURR_MONTH=$CURR_MONTH+12; //echo "CURRENT MONTH IS $CURR_MONTH</br>"; //$match="NO"; // Initializing $EMPACTIVITY to 0 for($i=0;$i<sizeof($empname);$i++) { for($k=0;$k<sizeof($AID_ABBREV);$k++) $EMPACTIVITY[$i][$k]=0; } // Connect to the database and fetch the leave record for each user // And update it for the current month // Preparing the Data Source Name $dsn_calendar = 'mysql://root:password@localhost/TRACKER'; // Connecting to the Database 3GDBData $mdb_calendar =& MDB2::factory($dsn_calendar); if (PEAR::isError($mdb_calendar)) { die($mdb_calendar->getMessage()); } //else // echo "Successfully Connected to TRACKER</br>"; for($i=1;$i<=sizeof($empname);$i++) { $res =& $mdb_calendar->query("SELECT * FROM LEAVETRACKER WHERE SID='$i' ORDER BY STARTDATE,ENDDATE"); for ($k=0;($row = $res->fetchRow());$k++) { // Extract the information from each row // Extracting SID $SID_CALENDAR=$row[1]; // Extracting STARTDATE $STARTDATE_CALENDAR=$row[2]; // Extracting ENDDATE $ENDDATE_CALENDAR=$row[3]; // Extracting Activity ID - AID $AID_CALENDAR=$row[4]; // Extract the DAY, Month and Year from STARTDATE //The function split returns an array of strings and the strings are separated on the basis of [/.-] list($STARTMONTH_CALENDAR, $STARTDAY_CALENDAR, $STARTYEAR_CALENDAR) = split('[/.-]', $STARTDATE_CALENDAR); //echo "Month: $STARTMONTH_CALENDAR; Day: $STARTDAY_CALENDAR; Year: $STARTYEAR_CALENDAR</br>\n"; // Extract the DAY, Month and Year from ENDDATE //The function split returns an array of strings and the strings are separated on the basis of [/.-] list($ENDMONTH_CALENDAR, $ENDDAY_CALENDAR, $ENDYEAR_CALENDAR) = split('[/.-]', $ENDDATE_CALENDAR); //echo "Month: $ENDMONTH_CALENDAR; Day: $ENDDAY_CALENDAR; Year: $ENDYEAR_CALENDAR</br>\n"; if($ENDYEAR_CALENDAR>$CURR_YEAR) $ENDMONTH_CALENDAR=$ENDMONTH_CALENDAR+12; //echo "END MONTH CALENDAR is $ENDMONTH_CALENDAR</br>"; // Required to update cal for the correct year by looking into the months of the corresponding year if($SEL_YEAR==$STARTYEAR_CALENDAR) { if($STARTYEAR_CALENDAR==$ENDYEAR_CALENDAR) { //echo "PING</br>"; if($CURR_MONTH>12) $CURR_MONTH=$CURR_MONTH%12; if($ENDMONTH_CALENDAR>12) $ENDMONTH_CALENDAR=$ENDMONTH_CALENDAR%12; } //echo "CURR_MONTH is $CURR_MONTH</br>"; //echo "START_MONTH is $STARTMONTH_CALENDAR</br>"; //echo "END_MONTH is $ENDMONTH_CALENDAR</br>"; if($CURR_MONTH>$STARTMONTH_CALENDAR && $CURR_MONTH<$ENDMONTH_CALENDAR) { for($j=1;$j<($DAYS_IN_CURR_MONTH+1);$j++) { if($cal[$SID_CALENDAR][$j]!="SAT" && $cal[$SID_CALENDAR][$j]!="SUN" && $cal[$SID_CALENDAR][$j]!="NHO") $cal[$SID_CALENDAR][$j]=$AID_ABBREV[$AID_CALENDAR]; } } if($CURR_MONTH==$STARTMONTH_CALENDAR && $CURR_MONTH!=$ENDMONTH_CALENDAR) { for($j=$STARTDAY_CALENDAR;$j<($DAYS_IN_CURR_MONTH+1);$j++) { if($cal[$SID_CALENDAR][$j]!="SAT" && $cal[$SID_CALENDAR][$j]!="SUN" && $cal[$SID_CALENDAR][$j]!="NHO") $cal[$SID_CALENDAR][$j]=$AID_ABBREV[$AID_CALENDAR]; } } if($CURR_MONTH==$ENDMONTH_CALENDAR && $CURR_MONTH!=$STARTMONTH_CALENDAR) { for($j=1;$j<=$ENDDAY_CALENDAR;$j++) { if($cal[$SID_CALENDAR][$j]!="SAT" && $cal[$SID_CALENDAR][$j]!="SUN" && $cal[$SID_CALENDAR][$j]!="NHO") $cal[$SID_CALENDAR][$j]=$AID_ABBREV[$AID_CALENDAR]; } } if($CURR_MONTH==$ENDMONTH_CALENDAR && $CURR_MONTH==$STARTMONTH_CALENDAR) { for($j=$STARTDAY_CALENDAR;$j<=$ENDDAY_CALENDAR;$j++) { if($cal[$SID_CALENDAR][$j]!="SAT" && $cal[$SID_CALENDAR][$j]!="SUN" && $cal[$SID_CALENDAR][$j]!="NHO") $cal[$SID_CALENDAR][$j]=$AID_ABBREV[$AID_CALENDAR]; } } } /*******/ elseif($SEL_YEAR>$STARTYEAR_CALENDAR) { //echo "PING</br>"; //if($CURR_MONTH>12) // $CURR_MONTH=$CURR_MONTH%12; //echo "$CURR_MONTH</br>"; //if($ENDMONTH_CALENDAR>12) //$ENDMONTH_CALENDAR=$ENDMONTH_CALENDAR%12; //echo "CURR_MONTH is $CURR_MONTH</br>"; //echo "START_MONTH is $STARTMONTH_CALENDAR</br>"; //echo "END_MONTH is $ENDMONTH_CALENDAR</br>"; if($SEL_YEAR==$ENDYEAR_CALENDAR) { if($CURR_MONTH>$STARTMONTH_CALENDAR && $CURR_MONTH<$ENDMONTH_CALENDAR) { for($j=1;$j<($DAYS_IN_CURR_MONTH+1);$j++) { if($cal[$SID_CALENDAR][$j]!="SAT" && $cal[$SID_CALENDAR][$j]!="SUN" && $cal[$SID_CALENDAR][$j]!="NHO") $cal[$SID_CALENDAR][$j]=$AID_ABBREV[$AID_CALENDAR]; } } if($CURR_MONTH==$STARTMONTH_CALENDAR && $CURR_MONTH!=$ENDMONTH_CALENDAR) { for($j=$STARTDAY_CALENDAR;$j<($DAYS_IN_CURR_MONTH+1);$j++) { if($cal[$SID_CALENDAR][$j]!="SAT" && $cal[$SID_CALENDAR][$j]!="SUN" && $cal[$SID_CALENDAR][$j]!="NHO") $cal[$SID_CALENDAR][$j]=$AID_ABBREV[$AID_CALENDAR]; } } if($CURR_MONTH==$ENDMONTH_CALENDAR && $CURR_MONTH!=$STARTMONTH_CALENDAR) { for($j=1;$j<=$ENDDAY_CALENDAR;$j++) { if($cal[$SID_CALENDAR][$j]!="SAT" && $cal[$SID_CALENDAR][$j]!="SUN" && $cal[$SID_CALENDAR][$j]!="NHO") $cal[$SID_CALENDAR][$j]=$AID_ABBREV[$AID_CALENDAR]; } } if($CURR_MONTH==$ENDMONTH_CALENDAR && $CURR_MONTH==$STARTMONTH_CALENDAR) { for($j=$STARTDAY_CALENDAR;$j<=$ENDDAY_CALENDAR;$j++) { if($cal[$SID_CALENDAR][$j]!="SAT" && $cal[$SID_CALENDAR][$j]!="SUN" && $cal[$SID_CALENDAR][$j]!="NHO") $cal[$SID_CALENDAR][$j]=$AID_ABBREV[$AID_CALENDAR]; } } } } } } /* for ($i=1;($row = $res->fetchRow());$i++) { // Extract the information for each employee // Extracting SID $SID_CALENDAR=$row[1]; // Extracting STARTDATE $STARTDATE_CALENDAR=$row[2]; // Extracting ENDDATE $ENDDATE_CALENDAR=$row[3]; // Extracting Activity ID - AID $AID_CALENDAR=$row[4]; // Extract the DAY, Month and Year from STARTDATE //The function split returns an array of strings and the strings are separated on the basis of [/.-] list($STARTMONTH_CALENDAR, $STARTDAY_CALENDAR, $STARTYEAR_CALENDAR) = split('[/.-]', $STARTDATE_CALENDAR); echo "Month: $STARTMONTH_CALENDAR; Day: $STARTDAY_CALENDAR; Year: $STARTYEAR_CALENDAR</br>\n"; // Extract the DAY, Month and Year from ENDDATE //The function split returns an array of strings and the strings are separated on the basis of [/.-] list($ENDMONTH_CALENDAR, $ENDDAY_CALENDAR, $ENDYEAR_CALENDAR) = split('[/.-]', $ENDDATE_CALENDAR); echo "Month: $ENDMONTH_CALENDAR; Day: $ENDDAY_CALENDAR; Year: $ENDYEAR_CALENDAR</br>\n"; if($STARTYEAR_CALENDAR<$ENDYEAR_CALENDAR) $ENDMONTH_CALENDAR=$ENDMONTH_CALENDAR+12; $ACTIVITY="TEMP"; for($j=1;$j<($DAYS_IN_CURR_MONTH+1);$j++) { // Check if the CURR_MONTH is between the STARTMONTH_CALENDAR and ENDMONTH_CALENDAR if($STARTMONTH_CALENDAR!=$ENDMONTH_CALENDAR) { if($CURR_MONTH>$STARTMONTH_CALENDAR && $CURR_MONTH<$ENDMONTH_CALENDAR) { echo "PING1"; //echo "test"; //echo "</br>"; if($SEL_YEAR==$ENDYEAR_CALENDAR || $SEL_YEAR==$STARTYEAR_CALENDAR) { if($cal[$SID_CALENDAR][$j]!="SAT" && $cal[$SID_CALENDAR][$j]!="SUN" && $cal[$SID_CALENDAR][$j]!="NHO") $cal[$SID_CALENDAR][$j]=$AID_ABBREV[$AID_CALENDAR]; } } if($CURR_MONTH==$STARTMONTH_CALENDAR) { echo "PING2"; for($k=$STARTDAY_CALENDAR;$k<($DAYS_IN_CURR_MONTH+1);$k++) { if($SEL_YEAR==$ENDYEAR_CALENDAR || $SEL_YEAR==$STARTYEAR_CALENDAR) { if($cal[$SID_CALENDAR][$k]!="SAT" && $cal[$SID_CALENDAR][$k]!="SUN" && $cal[$SID_CALENDAR][$k]!="NHO" && $cal[$SID_CALENDAR][$k]!=$ACTIVITY) $cal[$SID_CALENDAR][$k]=$AID_ABBREV[$AID_CALENDAR]; } } $ACTIVITY=$AID_ABBREV[$AID_CALENDAR]; break; // Exiting from the for loop for $j } if($CURR_MONTH==$ENDMONTH_CALENDAR) { for($f=1;$f<=$ENDDAY_CALENDAR;$f++) { if($SEL_YEAR==$ENDYEAR_CALENDAR || $SEL_YEAR==$STARTYEAR_CALENDAR) { if($cal[$SID_CALENDAR][$f]!="SAT" && $cal[$SID_CALENDAR][$f]!="SUN" && $cal[$SID_CALENDAR][$f]!="NHO") $cal[$SID_CALENDAR][$f]=$AID_ABBREV[$AID_CALENDAR]; } } break; // Exiting from the for loop for $j } } if($STARTMONTH_CALENDAR==$ENDMONTH_CALENDAR) { for($k=$STARTDAY_CALENDAR;$k<=$ENDDAY_CALENDAR;$k++) { if($SEL_YEAR==$ENDYEAR_CALENDAR || $SEL_YEAR==$STARTYEAR_CALENDAR) { if($cal[$SID_CALENDAR][$k]!="SAT" && $cal[$SID_CALENDAR][$k]!="SUN" && $cal[$SID_CALENDAR][$k]!="NHO") $cal[$SID_CALENDAR][$k]=$AID_ABBREV[$AID_CALENDAR]; } } break; // Exiting from the for loop for $j } } } */ $mdb_calendar->disconnect(); /* Building the HTML Display */ echo "<table border=5 bordercolor='#6495ed' frame='box' width='100%'>"; $COLOR="#FFFFFF"; for($i=0;$i<=sizeof($empname);$i++) { echo "<tr>"; for($j=0;$j<($DAYS_IN_CURR_MONTH+1);$j++) { if($i==0) echo "<td bgcolor='$COLOR' height='10' width='500'><b>".$cal[$i][$j]."</b></td>"; else { if($cal[$i][$j]=="NHO") $COLOR="#FF8C00"; elseif($cal[$i][$j]=="SAT" ||$cal[$i][$j]=="SUN") $COLOR="#00FF00"; else $COLOR="#FFFFFF"; echo "<td bgcolor='$COLOR' width='3%'>".$cal[$i][$j]."</td>"; } } echo "</tr>"; } echo "</table>"; /*echo "<table border=1>"; echo "<tr>"; echo "<td>"."1 "."</td>"; echo "<td>". "2 " . "</td>"; echo "<td>"."3 " . "</td>"; echo "</tr>"; echo "<tr>"; echo "<td>". "SAT" . "</td>"; echo "<td>". "SUN" . "</td>"; echo "<td>". "SAT" . "</td>"; echo "</tr>"; echo "</table>";*/ ?> </body> </html> Link to comment https://forums.phpfreaks.com/topic/148198-need-urgent-help/ Share on other sites More sharing options...
trq Posted March 6, 2009 Share Posted March 6, 2009 I need help to fix this index error and index offset error... Brilliant description. Firstly your post is no more urgent than anyone else's, secondly, if it is so urgent from your side you might want to actually tell us what the problem / error is so we can actually help. Link to comment https://forums.phpfreaks.com/topic/148198-need-urgent-help/#findComment-777921 Share on other sites More sharing options...
SieRobin Posted March 6, 2009 Share Posted March 6, 2009 I hate it when people echo their HTML for the entire page :[ It looks so sloppy and there is no syntax coloring. Link to comment https://forums.phpfreaks.com/topic/148198-need-urgent-help/#findComment-777938 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.