Zeilen einzeln auslesen mit Datumsvergleich

kjube

Grünschnabel
Hallo alle,

ich bastle grade an meinem zweiten PHP-Script und stecke fest:

Ich möchte in einer Flash-Datei die jeweils 2 nächsten Spiele der Fußball-EM ausgeben lassen.

Bis jetzt sieht mein Script so aus:
PHP:
$timestamp = time();
$datum = 	date("Y-m-d H:i:s",$timestamp);

$abfrage = 'SELECT * from spiele ORDER BY snummer';
$ergebnis = mysql_query($abfrage);

$row = mysql_fetch_assoc($ergebnis);

while($row = mysql_fetch_assoc($ergebnis)) { 
	 if ($row['sdatum']>=$datum) {
		$nachstespiele1 .="am ".$row['swochentag'].", ".$row['stag']." um ".$row['szeit']." Uhr;
		$nachstespiele2 .=$row['sgegner1']."  gegen  ".$row['sgegner2'];
		}
	}
	
	?>

Der Script spuckt also jetzt alle Spiele nach dem momentanen Datum aus, ich möchte aber nur die nächsten 2.

Mein zweiter Scriptversuch war
PHP:
$timestamp = time();
$datum = 	date("Y-m-d H:i:s",$timestamp);

$abfrage = 	'SELECT * from spiele ORDER BY snummer';
$ergebnis = mysql_query($abfrage);

$row = 		mysql_fetch_assoc($ergebnis);
$zeilenanzahl = 	mysql_num_rows($ergebnis); 

for ($i=0; $i<$zeilenanzahl; $i++) { // Zeilen durchnummerieren
	$row = mysql_fetch_assoc($ergebnis);
	$row['sdatum']>=$datum; // mit heutigem Datum vergleichen
	$nachstespiele1 .=$i."am ".$row['swochentag'].", ".$row['stag']." um ".$row['szeit'];
	$nachstespiele2 .=$i.$row['sgegner1']."  gegen  ".$row['sgegner2'];
	}

for	($i=1 or 2) { // Zeilen 1 + 2 ausspucken; das ist line 21
	echo "&nachstespiele1=".$nachstespiele1."&"."&nachstespiele2=".$nachstespiele2;
}

In meiner kleinen bunten Welt würde ich dazu:
-> alle Spiele nach dem aktuellen Datum aussuchen (hab ich gemacht, hat geklappt)
-> dann die Zeilen nach dem Datum ordnen und durchnummerieren (geht auch)
-> dann die entsprechenden Zeilen ausspucken lassen. (Dafür bekomme ich aber einen Parse error: syntax error, unexpected ')', expecting ';' on line 21

Die frage also: Wie muss ich den Script verändern, um die jeweils nächsten beiden Spiele rauszubekommen?

Ist wahrscheinlich völlig simpel, aber ich nag da schon seit 2 Tagen dran *frustrier*.

Würde mich wirklich über Hilfe freuen!

LG kjube
 
Hi, danke für die schnelle Antwort - hab ich eingebaut, im Script steht jetzt:

PHP:
$timestamp = time(); 
$datum =     date("Y-m-d H:i:s",$timestamp); 

$abfrage =     'SELECT * from spiele ORDER BY snummer'; 
$ergebnis = mysql_query($abfrage); 

$row =         mysql_fetch_assoc($ergebnis); 
$zeilenanzahl =     mysql_num_rows($ergebnis);  

for ($i=0; $i<$zeilenanzahl; $i++) { 
    $row = mysql_fetch_assoc($ergebnis); 
    $row['sdatum']>=$datum; 
    $nachstespiele1 .=$i."am ".$row['swochentag'].", ".$row['stag']." um ".$row['szeit']; 
    $nachstespiele2 .=$i.$row['sgegner1']."  gegen  ".$row['sgegner2']; 
    } 

for    ($i=1; $i<=2; $i++ ) { 
    echo "&nachstespiele1=".$nachstespiele1."&"."&nachstespiele2=".$nachstespiele2; 
}

blöderweise spuckt gibt er immernoch alles aus? Ich find den Fehler einfach nicht...
 
Ja das was ich geschrieben habe behebt auch nur den Parse-Error.
Du gehst das viel zu kompliziert an. Zum Beispiel (Ich kenne deine Tabellenstruktur nicht):
PHP:
$abfrage = 'SELECT
                *
            FROM
                `spiele`
            WHERE
                `stag` < "' .date( 'd', $timestamp ). '"
            ORDER BY
                `datum`
            LIMIT 2';
So wäre mein Ansatz. Wenn du statt stag, szeit etc. einen Timestamp speicherst wäre das noch einfacher. Zeig uns mal deine Tabellenstruktur.
 
Zurück