• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Terminkalender

Status
Für weitere Antworten geschlossen.

Joli

Neues Mitglied
nabend

ich hab ein problem und zwar programmier ich grad ein terminkalender, der aus der datenbank die termine ausliest und mithilfe einer while schleife ausgibt.
ziel ist es dass die termine eines monats untereinander nach den Monat stehn zb.

Juni
Probe 01.06.2008
probe 10.06.2008
probe 15.06.2008
Juli
Probe 01.07.2008
probe 10.07.2008
probe 15.07.2008

aber bislang hab ich es nur geschaft das über jedem Termin der jeweillige monat noch steht... hab schon eine idee wie ich das machen kann nur die ist sehr sehr kompliziert und umständlich

hier erst mal der code (ist alles in einer funktion verpackt):

PHP:
<?
function select_from_termine($limitstart = 0, $limitende = "max") {
// funktion um alle termine auszulesen, nach datum geordnet
	if($limitende == "max") $limitende = count_table("termine");
	$query = "SELECT * FROM termine ORDER BY datum, uhrzeit LIMIT $limitstart, $limitende";
	$sql = mysql_query($query);
	echo "<table class=\"table\">";
	while ($ds = mysql_fetch_object($sql)) {
		$eventid = $ds->id;
		$event = $ds->event;
		$text = nl2br($ds->text); // sobald auf cms umgestellt must das nl2br weggemacht werden
		$datum = $ds->datum;
		$uhrzeit = $ds->uhrzeit;
		$monatzahl = substr($datum, 3, 2);
				?>
		
		<tr class="kopfzeile" colspan="2">
			<td class="thema"><?= monatzahl_in_monat($monatzahl); ?></td>
			<td class="zeit" align="right"><a href="#topcontent"><img border="0" src="pics/top.gif" alt="nach oben" align="right" /></a></td>
		</tr>
		<tr>
			<td><a class="link"  target="_self" onmouseover="over('popup')" onmouseout="out('popup')" href="javascript:var popup = open('popup.php?kat=termine&id=<?= $eventid ?>','scrollbars=no,resizable=no,width=250,height=300,top=10,left=10')"><?= $event ?></a><? check_pics($eventid); ?></td>
			<td class="zeit" align="right"><?= $datum.", ".$uhrzeit; ?></td>
		</tr>
		<?
		$start = 1;
		while($start <= 3) { ?>
			<tr>
				<td></td>
			</tr>
			<?
			$start++;
			}
	}
	echo "</table>";
}

mit den code zeigts über jedem termin noch mal den monat an

ps: die funktion check_pics() ist nicht relevant,kann man also ignorieren
pps: in der funktion monatszahl_in_monat(); wird durch eine switch abfrage für zum beispiel "06" "Juni" zurückgegeben

weis jemand wie ich es schaffe das der Monat nur einmal dasteht???
 
Werbung:
Hi!

Probier mal:
Code:
SELECT * FROM bla WHERE bla GROUP BY MONTH(date)
Wie du auf die einzelnen Gruppen in PHP zugreifst, musst du googeln.

Grüße, Eric
 
Hi!

Probier mal:
Code:
SELECT * FROM bla WHERE bla GROUP BY MONTH(date)
Wie du auf die einzelnen Gruppen in PHP zugreifst, musst du googeln.

Grüße, Eric

danke für dein antwort...
hab etz mal im web nach group by informiert nur versteh ich da nur bahnhof...
kennt jemand eine andere möglichkeit oder kann mir mal group by erklären?
 
Werbung:
Mit group by kommst du da wirklich nicht zum Ziel. Prüfe mit einer if-Bedingung vor jedem einzelnen Datum, ob dieses ein neuer Monat ist oder nicht. Also plump gesagt:

Code:
if($vorherigermonat != $monat){echo "neuer Monat";}else{echo "der Monat nochmal";}
 
thx

bin gestern abend auch noch auf eine lösung gekommen.
fast die gleiche wie bei dir

ich geb einfach imma eine variable mit die den letzten monat drin hat und dann vergleicht.

im prinzip das gleiche wie bei dir;);)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben