Wahrheitsgehalt in Schleife (?) prüfen?

preko

Erfahrenes Mitglied
Hi,

ich habe sechs Werte (Timestamps [$row['Termin1'], $row['Termin2'], etc.]), die aus einer MySQL Datenbank kommen.

Ich möchte nun prüfen, ob der jeweilige Wert schon vergangen ist. Falls dieser noch nicht vergangen ist - also noch in der Zukunft liegt - so soll dann eine Ausgabe per "echo" erfolgen und die nachfolgenden Werte nicht mehr berücksichtigt werden.

Konkreter Fall:
Wert 1 - 3 sind z. B. vergangene Termine.
Wert 4 - 6 liegen in der Zukunft.

Nun soll laut Logik nur der Termin 4 Ausgegeben werden, aber nicht 5 und 6!

Wie mach ich das? Ich habe mir im php.net die diversen Schleifen (for, while, etc.) angeschaut, komm aber so nicht auf die konkrete Umsetzung. :confused:

Hat jemand einen Denkanstoß oder Tipp?


Beste Grüße,
preko
 
Probier mal Folgendes:
PHP:
foreach( $row as $item ) {
	if( … ) {
		echo $item;
		break;
	}
}
 
Hi Gumbo,

erst einmal vielen Dank für die schnelle Antwort.

Doch ich habe direkt eine weitere, die darauf aufbaut:
solange ich "nur" eine ID abfrage funktioniert Deine Lösung bestens. Wenn ich jedoch eine query über mehrere Datensätze (ID´s) laufen lasse, bekomme ich Probleme mit Deinem Lösungsvorschlag, da z. B. auch Felder abgefragt werden, die nicht nur Daten (hier: Plural von Datum gemeint) enthalten, sondern auch andere Datenarten (wie z. B. Namen, Anschriften, Telefonnummern, etc.).

In der jetzigen Lösung habe ich zwei Datenbankabfragen gemacht:
  • Abfrage der Datumsfelder unter Einbeziehung Deines Lösungsvorschlages. Separation des benötigten Start- und Endtermins (dafür habe ich die Datenbank umgeschrieben, so dass ich mittlerweile insgesamt "nur" noch sechs Terminfelder habe, die den Unix-Timestamp für den jeweiligen Start- und Endtermin durch ein Komma getrennt enthalten [z. B. 1147622400,1150300800]. Diese werden mit substr() bedarfsgerecht extrahiert).

    Beispiel:
PHP:
date("d.m.Y - H:i ",substr($row['mod1_start'], 0, 10))
  • Abfrage der restlichen benötigten (Daten-)Felder.

Wie müsste ich da vorgehen?


Beste Grüße,
preko
 
Zuletzt bearbeitet:
Zurück