Probleem met PHP schedule

Status
Niet open voor verdere reacties.

pzwalum

Gebruiker
Lid geworden
10 okt 2009
Berichten
11
Allereerst zal ik mezelf even introduceren, ik ben nieuw hier, ik zag dat hier hele goede hulp werd aangeboden bij allerlei problemen, en aangezien ik zelf ook een probleem heb waar ik niet uit kom hoopte ik dat jullie mij zouden kunnen helpen ;)

Ik ben beheerder een onze verenigingssite, maar de agenda werkt niet helemaal naar behoren. Je kunt (als het goed zou werken) op een datum klikken en daar meer informatie over krijgen wat er die dag te doen is. Als er één agendapunt per maand is levert dit geen problemen op. Als er twee of meer agendapunten zijn kun je niet van de ene data naar de ander, het verhaaltje van de ene data wordt niet veranderd. Via deze link kom je bij onze site en zie je wat ik bedoel.

Hieronder zet ik de volledige code in het php bestand (weet niet of dat het handigste is), ik kan de fout niet ontdekken.

PHP:
<?
	//Definiëren van Bibliotheken
	include("./Library/config.php");
	include("./Library/opendb.php");
	include("./Library/getData.php");
	include("./Library/calendar.php");



	//Omzetten van POST variabelen
	$strMonth		= $_GET["strMonth"];
	$scheduleDate	= $_GET["scheduleDate"];
	$prev		= $_GET["prev"];
	$next		= $_GET["next"];


?>

<script language="JavaScript">
<?
	include("./Library/dropDown.php");
?>
</script>

<head><? include("./Library/head.php"); ?></head>

<div id="header_container">
	<div id="header"><? include("./Library/mnuHead.php" ); ?></div>

	<h1></h1>
	<div id="menuBar"><? include("./Library/menuBar.php" ); ?></div>
</div>


<div id="body_container">
	<div id="optionPan">
		<form name="options" action="index.php" method="GET" enctype="multipart/form-data">

		<? include("mnuOption.php"); ?></form>
	</div>

	<div id="post">
		<div id="postHead"></div>

		<div id="postBody"><center>

<?
		// Binnen dit gedeelte worden de prev en next knoppen gedefineerd en opgezet
		$time = time();

		setlocale(LC_ALL, 'nld_NLD');

		$month_name = date( 'F', mktime(0, 0, 0, $strMonth) );
		$year_name = date( 'Y', mktime(0, 0, 0, $strMonth) );

		if(!isset($strMonth))
		{
			$month_new = date('n', $time);

			$month_name = date(F);
			$year_name = date(Y);

			$prev = date(n) - 1;
			$next = date(n) + 1;

			$month = date(n);
		}
		else
		{
			$month_new = "$strMonth, date($time)";
			$prev = $strMonth - 1;
			$next = $strMonth + 1;

			$month = $strMonth;
		}

		//Dit gedeelte zorgt ervoor dat de kalender aanklikbare data weergeeft.
		$qSchedule = "SELECT * FROM schedule;";
		$dbSchedule = mysql_query($qSchedule);

		$word = array();

		while($scheduleRow = mysql_fetch_array($dbSchedule))
		{
			$listDate = explode("/", $scheduleRow[3]);

			if($month==$listDate[1])
			{
				$teller = $listDate[0];

				$word[] =  $teller;
			}
		}

		$days = array('11', '/wan/', 'linked-day');


	$year = date(Y);
	$day_name_length = 2;
	$month_href = NULL;
	$first_day = 1;

	$first_of_month = gmmktime(0,0,0,$month,1,$year);

	$day_names = array();

	for($n=0,$t=(3+$first_day)*86400; $n<7; $n++,$t+=86400)
	{
		$day_names[$n] = ucfirst(gmstrftime('%A',$t));
	}

	list($month, $year, $month_name, $weekday) = explode(',',gmstrftime('%m,%Y,%B,%w',$first_of_month));

	$weekday = ($weekday + 7 - $first_day) % 7;
	$title   = htmlentities(ucfirst($month_name)).'&nbsp;'.$year;

?>
	<b>
		<span class="calendar-prev"><a href="./listSchedule.php?strMonth=<? echo "$prev"; ?>">&laquo;</a></span>&nbsp;&nbsp;<? echo "$month_name $year_name"; ?>&nbsp;
		<span class="calendar-next"><a href="./listSchedule.php?strMonth=<? echo "$next"; ?>">&raquo;</a></span>
	</b>
<?

	echo "<table class=\"calendar\"><tr>";

	if($day_name_length)
	{
			foreach($day_names as $d)
			{
?>				<th abbr="<? echo "htmlentities($d)"; ?>"><? echo htmlentities($day_name_length < 4 ? substr($d,0,$day_name_length) : $d); ?></th>
<?			}
	}

	echo "</tr>";

	if($weekday > 0)
	{
		echo "<td colspan=\"$weekday\">\n</td>";
	}

	for($day=1,$days_in_month=gmdate('t',$first_of_month); $day<=$days_in_month; $day++,$weekday++)
	{
		if($weekday == 7)
		{
			$weekday  = 0;
			echo "</tr>&nbsp;<tr>";
		}

		for ($t=0; $t<31; $t++)
		{
			if($day==$word[$t])
			{
                                                                if ($day < 10)
                                                                {
                                                                       $scheduleDate= "0$day";
                                                                }
                                                                else
                                                                {
                                                                       $scheduleDate= "$day";                                                                 
                                                                }

				$linkA = "<a href=\"./listSchedule.php?strMonth=$month&scheduleDate=$scheduleDate\">";
				$linkB = "</a>";
			}
		}

		echo "<td>$linkA $day $linkB</td>";

		$linkA = "";
		$linkB = "";

	}
	if($weekday != 7)
	{
		echo "<td colspan=\"(7-$weekday)\">&nbsp;</td>";
	}

	echo "</tr>\n</table>\n";


	if($scheduleDate!="")
	{
			echo "<br><br><br>";

			$qSelect = "SELECT * FROM schedule WHERE Date='$scheduleDate/$month/$year' ORDER BY 'ID' DESC;";
			$dbSelect = mysql_query($qSelect);

			while($row = mysql_fetch_array($dbSelect))
			{
				$textRow 	= $row[2];
				$sizeRow 	= mysql_fetch_lengths($dbSelect);
				$member 	= getData("members", $row[5]);
?>
				<h2><? echo "$row[1]"; ?> </h2>
<? 				echo "<hr><p>$textRow</p>";
?>				<hr>
				<h3>
					<b>Datum: </b><? echo "$row[3]"; ?>	|
					<b>Door: </b><? echo "$member"; ?>
				</h3>
				<br><br>
<?
			}
		}

?>


		</center></div>

		<div id="postEnd"></div>
	</div>
</div>

<br><br>
</body>

<?
	include("./Library/closedb.php");
?>

Alvast bedankt!
 
Ik denk dat dit het probleem is:

$scheduleDate krijgt op regel 12 de waarde van $_GET["scheduleDate"]; maar op regels 153 t/m 160 wordt $scheduleDate overschreven.

Vervolgens probeer je op regel 185 $scheduleDate te gebruiken (die inmiddels dus is gewijzigd en nooit de originele $_GET waarde kan bevatten)
 
Dankjewel voor de reactie, ik had dat inderdaad over het hoofd gezien, ik heb de $_GET code uit het begin gekopieerd naar waar weer naar de scheduleDate wordt gevraagd, dus:

PHP:
	if($scheduleDate!="")
	{
			echo "<br><br><br>";
	$scheduleDate	= $_GET["scheduleDate"];

			$qSelect = "SELECT * FROM schedule WHERE Date='$scheduleDate/$month/$year' ORDER BY 'ID' DESC;";
			$dbSelect = mysql_query($qSelect);

			while($row = mysql_fetch_array($dbSelect))

Het werkt nu in ieder geval naar behoren, volgens mij wordt dan de wijziging in scheduleDate ongedaan gemaakt, maar ik ondervind hier geen last van :) probleem opgelost dus, nogmaals dank!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan