SQL-Abfrage: Nur ein Eintrag pro Datum

maga147

Erfahrenes Mitglied
Hallo,

ich hab einen kleinen Kalender umgeschrieben und gebastelt, der mir jetzt ein paar schwierigkeiten bereitet. Und zwar werden per SQL Abfrage Datenbankeinträge ausgelesen und überprüft, ob das Datum mit dem im Kalender übereinstimmt, und wenn ja, wird der Tag "anklickbar" gemacht.

Mein Problem ist gerade, wenn mehrere Einträge am gleichen Tag in der DB stehen, wird die überprüfung abgebrochen und es wird kein Tag mehr anklickbar gemacht.

Ich bräuchte also vielleicht eine SQL Abfrage, die mir nur die ersten Einträge ausließt und bei einem evtl. 2. Eintrag am gleichen Tag weiterspringt.... (SELECT jeweils den ersten FROM blablabla ORDER BY date asc)

Kann man sowas realisieren und wenn ja, wie? Ich bin gerade nämlich voll überfragt
 
nee das klappt so auch nicht, weil er da ja nur den 1. eintrag nimmt, und nicht, wie ich will von jedem Tag den ersten...
 
Ich würde eher mit DISTINCT arbeiten:
Code:
SELECT
        DISTINCT(`date`)
  FROM
        …
  ORDER BY
        `date` ASC
 
Abend!

ich hoffe du hast 2 Tabellen also, sowas ähnliches:
PHP:
CREATE TABLE Kalender
(
  KID ...
  Datum ...
)

CREATE TABLE Eintraege
(
  EID ...
  Text ...
  KID ... 
)

Dann würde ich Folgendes vorschlagen:
PHP:
$SQLStr = "SELECT *, (SELECT Count(*) FROM Einträge WHERE KID = Kalender.KID) AS AnzEintraege FROM Kalender";

so und wenn ich dann die Tupel durchiteriere z.b. mit
PHP:
while($data = mysql_fetch_assoc($result) {...}
würde ich prüfen ob $data['AnzEintraege'] > 0 ist. Wenn ja, dann verlinken.

Gruß Andrej
 
Gumbo hat gesagt.:
Ich würde eher mit DISTINCT arbeiten:
Code:
SELECT
        DISTINCT(`date`)
  FROM
        …
  ORDER BY
        `date` ASC


:) :) :) =) Danke es funktioniert!!

@Andrej Dyck: Danke für deine Mühen, aber ich hab 1. keine 2 Tabellen, und das von Gumbo klappt auch :) Trotzdem danke Vielleicht hilfts später mal wem anderes
 
Zurück