Aus zwei Schleifen Daten vergleichen

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
hmmder3
Mitglied
Beiträge: 21
Registriert: 28.10.2011 16:16

Aus zwei Schleifen Daten vergleichen

Beitrag von hmmder3 »

Hallo

ich habe mal wieder ein kleines Problem und komme nicht weiter.
Ich weiß auch garnicht, ob das so möglich ist, wie ich mir das vorgestellt habe.

Es geht um folgendes:

Ich habe die Calendar Mod (Darum geht es hier nicht direct) und habe mir nun einen kleinen "Übersichts" Kalender auf meiner Mainseite erstellt (orientiert habe ich mich an dem Portal Mod mini_cal).

Nun möchte ich eine SQL-Abfrage machen, die mir das Datum der, in der Calendar Mod eingestellten Termine ausgibt.
Dies wird ja normalerweise so gemacht:

Code: Alles auswählen

$sql=
	'SELECT
		event_start_time,
		event_end_time,
		event_subject
	FROM
		'.$table_prefix.'calendar_events
	';
	
	$result = $db->sql_query($sql);

	while ($row = $db->sql_fetchrow($result))
	{
		//Code zum bearbeiten der Abfrage
	}
Nund habe ich den Code des mini_cal. Dieser wird über eine "for" Schleife erstellt.

Meine Frage ist nun, kann ich die Ergebnisse der beiden Schleifen irgendwie vergleichen, in etwa so:

Code: Alles auswählen

Schleife 1: Datum1- 1.10.2011
                Datum2- 5.10.2011
                usw.

Schleife 2: KalenderTag erstellen 1.10.2011

Wenn Datum Schleife 1 = KalenderTag erstellen Schleife 2 
dann Ergebnis = Link zum Kalender

Schleife 2: KalenderTag erstellen 2.10.2011

Wenn Datum Schleife 1 = KalenderTag erstellen Schleife 2
dann Ergebnis = Link zum Kalender

usw.
Hoffe das man dies so einigermaßen verstehen kann

Mit freundlichen Grüßen

hmm der 3.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Aus zwei Schleifen Daten vergleichen

Beitrag von Pyramide »

Wenn die Datumswerte als Unix-Timestamp vorliegen, kannst du diese einfach mit =, < und > vergleichen.
KB:knigge
hmmder3
Mitglied
Beiträge: 21
Registriert: 28.10.2011 16:16

Re: Aus zwei Schleifen Daten vergleichen

Beitrag von hmmder3 »

Ok

Ich habe jetzt das Datum in UNIXTIME

Code: Alles auswählen

$sql=
	'SELECT
		FROM_UNIXTIME(sort_timestamp)
	FROM
		'.$table_prefix.'calendar_events
	';
	
	$result = $db->sql_query($sql);

	while ($row = $db->sql_fetchrow($result))
	{
		
		$datum = $row['FROM_UNIXTIME(sort_timestamp)'];

		//Datum splitten
		list ($jahr, $monat, $tag, $stunden, $minuten, $sekunden) = split('[-: ]', $datum);
    }
Jetzt ist aber immernoch die Frage, wie ich daten aus 2 Unterschiedlichen Schleifen mit einander vergleichen kann. Da hängt es einfach bei mir.

EDIT:

Habs nun geschaft. trozdem danke für die mühen!
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Aus zwei Schleifen Daten vergleichen

Beitrag von Pyramide »

hmmder3 hat geschrieben:Ich habe jetzt das Datum in UNIXTIME
Nein, mit from_unixtime konvertierst du von einem Unix-Timestamp zu einem (SQL-)Datumswert, hast also hinterher keinen Unix-Timestamp mehr.
hmmder3 hat geschrieben:Jetzt ist aber immernoch die Frage, wie ich daten aus 2 Unterschiedlichen Schleifen mit einander vergleichen kann. Da hängt es einfach bei mir.
Naja du vergleichst die Werte halt einfach. Wie die Grundstruktur aussehen muss, hast du ja im ersten Beitrag schon als Pseudocode geschrieben. In der Annahme, dass die Spalten event_start_time und event_end_time Beginn und Ende des Termins enthalten, kannst du dann mit if($timestamp_des_aktuellen_kalendertages >= $event_start_time && $timestamp_des_aktuellen_kalendertages <= $event_end_time) feststellen, ob der Termin am entsprechenden Kalendertag ist.

Ansonsten vielleicht mal den vollständigen Code posten und beschreiben, was genau noch nicht funktioniert (-> KB:programmierfragen). Dein bisheriger Code enthielt ja bisher immer nur eine Schleife.
KB:knigge
hmmder3
Mitglied
Beiträge: 21
Registriert: 28.10.2011 16:16

Re: Aus zwei Schleifen Daten vergleichen

Beitrag von hmmder3 »

Vielen Dank für die Antwort.

Es läuft mitlerweile schon. Das mit dem Unixtime habe ich falsch verstanden aber richtig ausgeführt. Dadurch habe ich ein normales Datumsformat erstellt das ich wieder splitten konnte:

Code: Alles auswählen

		$datum = $row['FROM_UNIXTIME(sort_timestamp)'];

		//Datum splitten
		list ($jahr, $monat, $tag, $stunden, $minuten, $sekunden) = split('[-: ]', $datum);
		$datum = ($tag.".".$monat.".".$jahr." - ".$stunden.":".$minuten);
War also doch richtig :P

Das Thema kann also als abgeschlossen geschaltet werden.

Zu meiner Lösung für alle Suchende:

Ich habe einfach die "while" Schleife, um die SQL-Abfrage zu verarbeiten, in die "for" Schleife meines Kalenders gepackt und mit Abfragen versehen. So erhalte ich nun mein Ziel, das mir die Tage ausgegeben werden, an denen in der Calendar MOD Termine eingetragen sind.

MfG

hmm der 3.
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“