Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Probleme beim Auslesen aus Datenbank
Frage
Hallo!
Ich habe ein kleines Problem beim Auslesen von Daten aus einer Datenbank.
Ich möchte das wenn z.B.am 20.06.05 fünf Termine eingetragen sind quasi in der ersten Zeile das Datum steht und ab der zweiten alle Termine zu dem entsprechendem Datum. Bis jetzt sieht das Ergebnis noch folgendermaßen aus:
2005-05-10
20:00:00 Grundschule Testtermin
20:00:00 Grundschule Testtermin
20:00:00 Grundschule Testtermin
2005-05-10
20:00:00 Spielstube Klassentreffen
20:00:00 Spielstube Klassentreffen
20:00:00 Spielstube Klassentreffen
Könnt ihr mir sagen wie ich ereichen kann dass das Datum und die Termine jeweils nur 1x angezeigt werden???
Für eure Hilfe wäre ich euch echt dankbar.
<?php
if ($t_id >= 0)
{
$ergebnis = mysql_query("SELECT * FROM termine ORDER BY Datum desc");
for ($n=0;$n<mysql_num_rows($ergebnis);$n++)
{
$result = mysql_fetch_object($ergebnis);
echo "<tr>";
echo"<td>".$result->Datum."</td>";
echo "<td> </td>";
echo "<td> </td>";
echo "<td> </td>";
echo "</tr>";
/*
$ergebnis2 = mysql_query("SELECT * FROM termine WHERE Datum=´.$result->Datum.´ ORDER BY Uhrzeit");
for ($n2=0;$n2<mysql_num_rows($ergebnis2);$n2++)
{
$result2 = mysql_fetch_object($ergebnis2);
//$bgcolor2 = ($bgcolor2==´#CCCCCC´) ? (´#FFFFFF´) : (´#CCCCCC´);
echo ´<tr bgcolor="´, $bgcolor2, ´">´;
echo "<td> </td>";
echo "<td>".$result->Uhrzeit."</td>";
echo "<td>".$result->Einrichtung."</td>";
echo "<td>".$result->Beschreibung."</td>";
echo "</tr>";
}
*/
?>
Antwort 1 von Nessus
Hi,
da hilft ein distinct weiter.
http://www.projektvermittler.de/artikel283.html
Nessus
da hilft ein distinct weiter.
http://www.projektvermittler.de/artikel283.html
Nessus
Antwort 2 von Dr.Oetker
Abend!
Danke für deine schnelle Hilfe! Leider bin ich als blutiger Anfänger nicht wirklich weit gekommen. Zwar werden in der jeweils ersten Zeile keine doppelten Einträge mehr angezeigt, dafür werden die Termine zu dem jeweiligen Datum nicht mehr angezeigt. Kannst du mir sagen weshalb?
Die Ausgabe:
2006-06-01
2005-05-10
2005-05-05
2005-04-06
2004-12-03
0000-00-00
Quellcode:
<?php
if ($t_id >= 0)
{
//$ergebnis = mysql_query("SELECT * FROM termine ORDER BY Datum desc");
$ergebnis3 = mysql_query("SELECT DISTINCT Datum FROM termine ORDER BY Datum desc");
for ($n=0;$n<mysql_num_rows($ergebnis3);$n++)
{
$result = mysql_fetch_object($ergebnis3);
echo "<tr>";
echo"<td>".$result->Datum."</td>";
echo "<td> </td>";
echo "<td> </td>";
echo "<td> </td>";
echo "</tr>";
$ergebnis2 = mysql_query("SELECT * FROM termine WHERE Datum=´.$result->Datum.´ ORDER BY Uhrzeit");
for ($n2=0;$n2<mysql_num_rows($ergebnis2);$n2++)
{
$result2 = mysql_fetch_object($ergebnis2);
//$bgcolor2 = ($bgcolor2==´#CCCCCC´) ? (´#FFFFFF´) : (´#CCCCCC´);
echo ´<tr bgcolor="´, $bgcolor2, ´">´;
echo "<td> </td>";
echo "<td>".$result->Uhrzeit."</td>";
echo "<td>".$result->Einrichtung."</td>";
echo "<td>".$result->Beschreibung."</td>";
echo "</tr>";
}
?>
<tr>
<td style="line-height:15px;"> </td>
</tr>
<?php
}
}
else
{
echo"<tr><td> </td></tr>";
}
?>
Danke für deine schnelle Hilfe! Leider bin ich als blutiger Anfänger nicht wirklich weit gekommen. Zwar werden in der jeweils ersten Zeile keine doppelten Einträge mehr angezeigt, dafür werden die Termine zu dem jeweiligen Datum nicht mehr angezeigt. Kannst du mir sagen weshalb?
Die Ausgabe:
2006-06-01
2005-05-10
2005-05-05
2005-04-06
2004-12-03
0000-00-00
Quellcode:
<?php
if ($t_id >= 0)
{
//$ergebnis = mysql_query("SELECT * FROM termine ORDER BY Datum desc");
$ergebnis3 = mysql_query("SELECT DISTINCT Datum FROM termine ORDER BY Datum desc");
for ($n=0;$n<mysql_num_rows($ergebnis3);$n++)
{
$result = mysql_fetch_object($ergebnis3);
echo "<tr>";
echo"<td>".$result->Datum."</td>";
echo "<td> </td>";
echo "<td> </td>";
echo "<td> </td>";
echo "</tr>";
$ergebnis2 = mysql_query("SELECT * FROM termine WHERE Datum=´.$result->Datum.´ ORDER BY Uhrzeit");
for ($n2=0;$n2<mysql_num_rows($ergebnis2);$n2++)
{
$result2 = mysql_fetch_object($ergebnis2);
//$bgcolor2 = ($bgcolor2==´#CCCCCC´) ? (´#FFFFFF´) : (´#CCCCCC´);
echo ´<tr bgcolor="´, $bgcolor2, ´">´;
echo "<td> </td>";
echo "<td>".$result->Uhrzeit."</td>";
echo "<td>".$result->Einrichtung."</td>";
echo "<td>".$result->Beschreibung."</td>";
echo "</tr>";
}
?>
<tr>
<td style="line-height:15px;"> </td>
</tr>
<?php
}
}
else
{
echo"<tr><td> </td></tr>";
}
?>
Antwort 3 von Nessus
Hi,
den Distinct solltest Du in die 2te Abfrage setzen.
Nessus
den Distinct solltest Du in die 2te Abfrage setzen.
Nessus

