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 ""; 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>";
}
[/PHP]
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???