MySql-Abfrage für Terminplan

MySql-Abfrage für Terminplan

am 27.04.2006 17:48:13 von Philipp Wabinski

Hallo Zusammen,

mein Problem ist das folgende:


Spalten von termine Termine:

uid date_start market ...


Bei einem Neueintrag wird der Unixzeitstempel für das Startdatum gespeichert
und der Eintrag bekommt eine id.
Da hier nur der Tag gespeichert wird und mehrere Einträge für einen Tag
existieren können, sortiere ich die Einträge zusätzlich aufsteigend nach der
uid. Da ich die Ausgabe der Termine auf 5 begrenze, kann es ja vorkommen das
in der aktuellen abfrage nur 2 von insgesamt 3 Einträgen angezeigt werden,
die das gleiche Datum haben. Wenn für die Folgeseite dann die folgende
Abfrage mache:

SELECT uid, date_start, market FROM user_ontour_dates WHERE date_start > =
'1154642400' ORDER BY date_start ASC, uid ASC LIMIT 6

(1154642400 = Zeitstempel des ersten Eintrages aus dieser Abfrage)

bekomme ich ja die auch die zwei älteren Einträge.

Hat vielleicht jemand eine Idee, wie ich die Ausgabe dieser beiden Einträge
verhindern kann? Besteht vielleicht die Möglichkeit die Abfrage so zu
gestalten, dass er bei Einträgen die den Angegeben Zeitsempel haben, nur die
die auswählt, deren uid größer ist, als $x?

Ich bin für jeden Ansatz dankbar.


Grüße Philipp

Re: MySql-Abfrage für Terminplan

am 27.04.2006 18:59:14 von Philipp Wabinski

Ich hab schon eine Lösung gefunden.

Wenn ich quasi eine xor Anweisung benutze kann ich die gewünschten
Ergebnisse ausklammern.

Sieht dann so aus:

SELECT uid, date_start, market FROM user_ontour_dates WHERE (date_start >=
'1154642400' AND uid > '17') OR (date_start > '1154642400') ORDER BY
date_start ASC, uid ASC LIMIT 5

Hätte ich auch gleich drauf kommen können ....


Grüße

Re: MySql-Abfrage fürTerminplan

am 27.04.2006 23:10:43 von Thomas Rachel

Philipp Wabinski wrote:

> Hallo Zusammen,
>
> mein Problem ist das folgende:

.... das hast Du ja schon gelöst.

Aber mich interessiert folgendes:

> Bei einem Neueintrag wird der Unixzeitstempel für das Startdatum
> gespeichert und der Eintrag bekommt eine id.

Warum ein Unixzeitstempel? MySQL hat doch sooo schöne Datums- und
Zeittypen und auch -funktionen, zumal...

> Da hier nur der Tag gespeichert wird

.... ein DATE platzsparender ist als ein (vermutlich 32bittiger)
Zeitstempel.


Thomas
--
Du verwexelst da was: Chinin ist das, was den Lemon bitter macht. Das,
was die BigMäcs und den Chefsalate so schön knackig macht, heißt Chitin.
Hartmut Lehmann in de.alt.folklore.urban-legends

Re: MySql-Abfrage fr Terminplan

am 28.04.2006 01:35:26 von Philipp Wabinski

Hi Thomas,

> > Da hier nur der Tag gespeichert wird
>
> ... ein DATE platzsparender ist als ein (vermutlich 32bittiger)
> Zeitstempel.

sehe ich ja auch so und für den Zweck ist es auch wirklich nicht notwendig.
Ich brauche die Abfrage aber für ein typo3 frontendplugin. Ich habe die
Hauptstruktur der extension mit dem kickstarter erstellt. Der hat das so
vorgegeben und das Backend von Typo 3 ist sicher auch auf diese Vorgaben
ausgerichtet.


Philipp