thepresidentis Posted February 3, 2008 Share Posted February 3, 2008 THIS IS A JOB CALENDER SCRIPT I need help ending the while loop so that I can dislpay all the matching jobs from the database. $day1 is a variable that contains job data from inside the while loop. I found that if I echo "$day1" } //END WHILE LOOP I get 20 out of 20 jobs to display, BUT not in the calender ofcourse. I also Find that if I echo generate_calendar(date('Y', $time), date('n', $time), $days ); // ECHO THE CALENDER AND CALENDER DATA } //END OF THE WHILE LOOP I only get 1 job to display but in the calendar. There is an array that contains the information for each day it is here $days = array( 1=>array($idlink,'linked-day',$day1), 2=>array($idlink,'linked-day',$day2), 3=>array($idlink,'linked-day',$day3), 4=>array($idlink,'linked-day',$day4), ); In this array: (1) would be the day ($idlink) would be a link to another page ('linked-day') defines what kind of link or text to display ($day1) is text to display for the day example: the variable to display the jobs I think there might be a problem with the while loop and the array not sure though. or maybe because the array is in a function and the variable for the job data is not? i don't know Here is my full script //Dertimines Month and Year $Mo = date ("m"); $Ye = date ("Y"); putenv("TZ=America/Los_Angeles"); // rows to return //connect to database mysql_connect()//(host, username, password) //specify database mysql_select_db("Diablo") or die("Unable to select database"); //select which database we're using // Building SQL Query //Display This Months Jobs $query = "SELECT * FROM `Customers` WHERE MONTH(DATE) = CONVERT( _utf8 '$Mo' USING latin1 ) AND YEAR(DATE) = CONVERT( _utf8 '$Ye' USING latin1 )AND `CANCELLED` != CONVERT( _utf8 'CANCELLED' USING latin1 ) COLLATE latin1_swedish_ci "; //determine if s has been passed to script, if not use 0 // Execute The query $result = mysql_query($query) or die("Couldn't execute query: " . mysql_error()); // Get the number of rows returned by the DB. $numrows=@mysql_num_rows($result); ?> <style type="text/css"> table { width:1280px; height:1024px; border:0px solid #888; border-collapse:collapse; } td { width:200px; height:350px; border-collpase:collpase; border:1px solid #888; text-align:right; vertical-align: top; padding-right:5px; } .days2{ background-color: #F1F3F5; } th { border-collpase:collpase; border:1px solid #888; background-color: #E9ECEF; } .actday{ background-color: #c22; font-weight:bold; } </style> <?php /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function generate_calendar($year, $month, $days = array(), $day_name_length = 3, $month_href = NULL, $first_day = 0, $pn = array()){ $first_of_month = gmmktime(0,0,0,$month,1,$year); #remember that mktime will automatically correct if invalid dates are entered # for instance, mktime(0,0,0,12,32,1997) will be the date for Jan 1, 1998 # this provides a built in "rounding" feature to generate_calendar() $day_names = array(); #generate all the day names according to the current locale for($n=0,$t=(3+$first_day)*86400; $n<7; $n++,$t+=86400) #January 4, 1970 was a Sunday $day_names[$n] = ucfirst(gmstrftime('%A',$t)); #%A means full textual day name list($month, $year, $month_name, $weekday) = explode(',',gmstrftime('%m,%Y,%B,%w',$first_of_month)); $weekday = ($weekday + 7 - $first_day) % 7; #adjust for $first_day $title = htmlentities(ucfirst($month_name)).' '.$year; #note that some locales don't capitalize month and day names #Begin calendar. Uses a real <caption>. See http://diveintomark.org/archives/2002/07/03 @list($p, $pl) = each($pn); @list($n, $nl) = each($pn); #previous and next links, if applicable if($p) $p = '<span class="calendar-prev">'.($pl ? '<a href="'.htmlspecialchars($pl).'">'.$p.'</a>' : $p).'</span> '; if($n) $n = ' <span class="calendar-next">'.($nl ? '<a href="'.htmlspecialchars($nl).'">'.$n.'</a>' : $n).'</span>'; $calendar = '<table class="calendar">'."\n". '<caption class="calendar-month">'.$p.($month_href ? '<a href="'.htmlspecialchars($month_href).'">'.$title.'</a>' : $title).$n."</caption>\n<tr>"; if($day_name_length){ #if the day names should be shown ($day_name_length > 0) #if day_name_length is >3, the full name of the day will be printed foreach($day_names as $d) $calendar .= '<th abbr="'.htmlentities($d).'">'.htmlentities($day_name_length < 4 ? substr($d,0,$day_name_length) : $d).'</th>'; $calendar .= "</tr>\n<tr>"; } if($weekday > 0) $calendar .= '<td colspan="'.$weekday.'"> </td>'; #initial 'empty' days for($day=1,$days_in_month=gmdate('t',$first_of_month); $day<=$days_in_month; $day++,$weekday++){ if($weekday == 7){ $weekday = 0; #start a new week $calendar .= "</tr>\n<tr>"; } if(isset($days[$day]) and is_array($days[$day])){ @list($link, $classes, $content) = $days[$day]; if(is_null($content)) $content = $day; $calendar .= '<td'.($classes ? ' class="'.htmlspecialchars($classes).'">' : '>'). ($link ? '<a href="'.htmlspecialchars($link).'">'.$content.'</a>' : $content).'</td>'; } else $calendar .= "<td>$day</td>"; } if($weekday != 7) $calendar .= '<td colspan="'.(7-$weekday).'"> </td>'; #remaining "empty" days return $calendar."</tr>\n</table>\n"; } $time = time(); $today = date('j',$time); while ($row= mysql_fetch_array($result)) { $id = $row["id"]; $timeneeded = $row["TIMENEEDED"]; $title15 = $row["TIME"]; $title = $row["FIRSTNAME"]; $title1 = $row["LASTNAME"]; $title2 = $row["ADDRESS"]; $title3 = $row["CITY"]; $title4 = $row["PHONE"]; $title5 = $row["MOBILE"]; $title6 = $row["EMAIL"]; $title7 = $row["TYPEOFFIRE"]; $title8 = $row["TYPEOFSERVICE"]; $title9 = $row["OTHER"]; $title10 = $row["PRICE"]; $title11 = $row["REPAIRS"]; $title12= $row["REPAIRSPRICE"]; $title13 = $row["DATE"]; $title14 = $row["EMPLOYEENUMBER"]; $cancelled = $row["CANCELLED"]; $userDate = $title13; $dateArray = explode ("-" ,$userDate); $americanFormat = $dateArray[1] . "-" . $dateArray[2] . "-" . $dateArray[0]; $dateArray2 = explode ("-" ,$userDate); $month2 = $dateArray2[1]; $dayX2 = $dateArray2[2]; $year2 = $dateArray2[0]; $weekday2 = date(" F j, Y", mktime(0,0,0,$month2,$day2,$year2)); $dayname = date ("l", mktime(0,0,0,$month2,$day2,$year2)); //formats time from database if ($title15 == "1") {$newtime = "9:00 Am";} elseif ($title15 == "2") {$newtime = "10:30 Am";} elseif ($title15 == "3") {$newtime = "12:00 Pm";} elseif ($title15 == "4") {$newtime = "1:30 Pm";} elseif ($title15 == "5") {$newtime = "3:00 Pm";} else {$newtime = "";} //formats a unique color for each truck number if ($title14 == "1") {$newcolor = 'limegreen';} elseif ($title14 == "2") {$newcolor = 'RED';} elseif ($title14 == "3") {$newcolor = 'BLUE';} elseif ($title14 == "4") {$newcolor = 'grey';} elseif ($title14 == "5") {$newcolor = 'goldenrod';} else {$newcolor = 'goldenrod';} //end format output color ////////////////////////////////////////////////////////// //begin check time for odd entry if ($newtime == "") {$newtimeshow = $title9;} else {$newtimeshow = $newtime;} //////////////////////////////////////////////////////////// //Assign Variables to each day's jobs if ($dayX2 == '01') {$day1 = "1 <BR><FONT color='$newcolor'> Truck: $title14 $newtimeshow,$title9 $timeneeded Hours $title3</FONT><BR>";} elseif ($dayX2 =='02') {$day2 = "2 <BR><FONT color='$newcolor'> Truck: $title14 $newtimeshow,$title9 $timeneeded Hours $title3</FONT><BR>";} elseif ($dayX2 =='03') {$day3 = "3 <BR><FONT color='$newcolor'> Truck: $title14 $newtimeshow,$title9 $timeneeded Hours $title3</FONT><BR>";} elseif ($dayX2 =='04') {$day4 = "4 <BR><FONT color='$newcolor'> Truck: $title14 $newtimeshow,$title9 $timeneeded Hours $title3</FONT><BR>";} ///////////////etc... $idlink = "id.php?id=$id"; // THIS IS THE ARRAY FOR EACH DAY $days = array( 1=>array($idlink,'linked-day',$day1), 2=>array($idlink,'linked-day',$day2), 3=>array($idlink,'linked-day',$day3), 4=>array($idlink,'linked-day',$day4), ); ///END OF ARRAY (THERE WILL BE VALUES FOR EACH DAY OF THE MONTH HERE, I JUST SUMMARIZED IT FOR READING $dork = generate_calendar(date('Y', $time), date('n', $time), $days ); echo $dork; // ECHO THE CALENDER AND CALENDER DATA } //END OF THE WHILE LOOP ?> Link to comment https://forums.phpfreaks.com/topic/89128-help-ending-while-loop-correct-placement/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.