65999
Goto Top

Die IDs der nächsten 3 Einträge nach dem Datum aus der Datenbank auslesen

Hallo!
Könnt ihr mir gerade mal bitte helfen?

Ich versuche schon seit mehreren Stunden, die ID's aus der Datenbank auszulesen, die nach dem Eintrag im Datumsfeld als nächstes kommen!

Daher:

Ich ermitttele, welcher Tag ist heute!
Frage in der Datenbank: Was is der nächste Eintrag? Möchte daraus die ID auslesen!
Frage in der Datenbank: Was ist der nächste Eintrag? Und möchte auch daraus die ID wieder auslesen! Und so weiter!


Die ID hätte ich gerne in einer Variabel, da ich mit diesen weiterarbeiten möchte!

Ich würde euch gerne meine Anhiebe posten, aber iwi hat das keine Hand und kein Fuß.


Ich wäre euch sehr dankbar, wenn ihr mir bei dieser, für euch kleinen Aufabe helfen könntet!
Danke, gruss

Content-Key: 132846

Url: https://administrator.de/contentid/132846

Printed on: April 24, 2024 at 07:04 o'clock

Member: dog
dog Jan 07, 2010 at 00:40:04 (UTC)
Goto Top
Das ist mal wieder so eine Frage wo ich das problem nicht verstehe (was vielleicht auch mit der Wischi-Waschi-Formulierung zusammenhängt):

SELECT id FROM tbl1 WHERE id > (SELECT id FROM tbl1 WHERE datum = CURDATE() ORDER BY id ASC LIMIT 1) ORDER BY id ASC LIMIT 3
Mitglied: 65999
65999 Jan 07, 2010 at 07:15:08 (UTC)
Goto Top
Hi! Danke für deine Hilfe!
Wie kann ich aber die verschiedene ID's in verschiedene Variabeln speichern?

Danke!
Member: lordraydon
lordraydon Jan 07, 2010 at 08:39:05 (UTC)
Goto Top
Hallo,

In welcher Sprache programmierst du denn???

Beste Grüße,
Christian
Member: Dani
Dani Jan 07, 2010 at 10:48:04 (UTC)
Goto Top
@chris
Der Beitrag liegt im PHP-Bereich... ^^

@schmidt
Ganz einfach...du baust eine Schleife um die Abfrage in PHP. Etwa so:
$query = "SELECT id FROM tbl1 WHERE id > (SELECT id FROM tbl1 WHERE datum = CURDATE() ORDER BY id ASC LIMIT 1) ORDER BY id ASC LIMIT 3;";  
$result = mysql_query($query) OR die ("Fehler bei der SQL Abfrage:<br/ >". mysql_error());              
if (mysql_num_rows($result) > 0) {
while($row= mysql_fetch_object($result)) {
echo §row->id."<br />";  
}
}
Ich habe als SQL-Statement das Beispiel von Oben hinterlegt. Das solltest am Besten mal über phpMyAdmin testen ob das gewünschte Ergebnis herauskommt.


Grüße,
Dani
Member: lordraydon
lordraydon Jan 07, 2010 at 11:06:41 (UTC)
Goto Top
@Dani
Uuuups... habe ich anscheinend übersehen^^
Danke face-smile

Aber würde das ganze nicht auch einfach funktionieren, wenn man das einfach nach Datum absteigend sortiert???
Wenn ich das ganze richtig verstanden habe, will er von den letzten drei Einträgen (die gemacht wurden) die IDs haben.
Wenn nun also das Feld mit dem Datum auch wirklich mit "Date" formatiert wurde, dann müsste man das auch absteigend sortieren können ;)

Beste Grüße,
Christian
Member: Arano
Arano Jan 07, 2010 at 14:38:23 (UTC)
Goto Top
Zitat von @lordraydon:
Aber würde das ganze nicht auch einfach funktionieren, wenn man das einfach nach Datum absteigend sortiert???
Wenn ich das ganze richtig verstanden habe, will er von den letzten drei Einträgen (die gemacht wurden) die IDs haben.
Wenn nun also das Feld mit dem Datum auch wirklich mit "Date" formatiert wurde, dann müsste man das auch absteigend sortieren können ;)

Die Idee hatte ich auch und habe es mal Probiert:
id time
187 1252578544
188 1253041327
189 1257792839
190 1259084882
  SELECT `id`
    FROM `gjv2_guestbook`
   WHERE `time` > 1252578544
ORDER BY `time` ASC
   LIMIT 3
id
188
189
190
Nungut, ich habe da jetzt nen Timestamp anstelle des Datums (keine Ahnung warum), aber das dürfte soweit keinen Unterschied machen.

~Arano
Mitglied: 65999
65999 Jan 07, 2010 at 19:01:26 (UTC)
Goto Top
Hi face-smile
Danke für die Beiträge!

Ich habe in der Datenbank mehrere Events stehen, möchte aber auf der Startseite meiner HP nur die ersten 3 Angezeigt bekommen!

Habe es auch so gemacht:

//Ermittelen des Events
$sql = 'SELECT * FROM jos_eventlist_events WHERE dates > NOW() ORDER BY dates ASC LIMIT 0,2';
$result=mysql_query("$sql") or die (mysql_error());

Dann eine Schleife:
while($row=mysql_fetch_array($result))
{ } und die Variabeln ausgegeben!

Funktioniert ja auch fast gut!

Fast leider nur, denn alle Einträge von heute mag er nicht anzeigen!
Was mache ich falsch?

Danke, gruss
Mitglied: 65999
65999 Jan 07, 2010 at 19:31:08 (UTC)
Goto Top
Zitat von @65999:
Hi face-smile
Danke für die Beiträge!

Ich habe in der Datenbank mehrere Events stehen, möchte aber auf der Startseite meiner HP nur die ersten 3 Angezeigt
bekommen!

Habe es auch so gemacht:

//Ermittelen des Events
$sql = 'SELECT * FROM jos_eventlist_events WHERE dates > NOW() ORDER BY dates ASC LIMIT 0,2';
$result=mysql_query("$sql") or die (mysql_error());

Dann eine Schleife:
while($row=mysql_fetch_array($result))
{ } und die Variabeln ausgegeben!

Funktioniert ja auch fast gut!

Fast leider nur, denn alle Einträge von heute mag er nicht anzeigen!
Was mache ich falsch?

Danke, gruss


Habe nun ein = noch vor > gesetzt, dann passt es face-smile Danke!