Hallo,
ich habe gerade ein kleines kreatives Problem. Ich möchte 2 vorhandene Timestamps aus der Datenbank mit 2 Timestamps aus einen Formular vergleichen.
Als Ergebnis soll der Datensatz gezogen werden, wo Die Daten aus den Formularfeldern zwischen den aus der Datenbank liegen.
Beispiel Eingabe im Formular:
Von: 15.05
Bis: 03.06
Die Eingabe im Formular sieht z.B. so aus: 03-05-2010
Ich formatiere das ganze dann mit
$von = "03-05-2010";
$format = str_replace("-", ",", "$von");
$array_format = explode(",", $format);
$mktime_von = mktime(0,0,0, $array_format_[4], $array_format_[3],0);
Die Daten werden auch so in die Datenbankgeschrieben, also vom Aufbau des Timestamps sind die Eingaben im Formular und in der DB gleich.
In der Datenbank sind verschiedene Werte (Daten sind real im Timestamp format!!):
ID|HID| Von | Bis | wert
1 | 3 | 01.05 | 30.06 | 10
2 | 3 | 01.07 | 18.07 | 20
3 | 4 | 14.05 | 15.06 | 30
Bisher versuche ich folgendes:
$data = $db->singleQuery("
SELECT wert FROM session
WHERE HID='".$id."'
AND von>= '".$mktime_von."'
AND bis>= '".$mktime_bis."'
");
foreach($data as $key => $value)
$$key = $value;
echo $session."<br />"; // Ausgabe => 20 und => 30
Alles anzeigen
Problem ist erstes, dass nicht ID1, sondern in diesem Beispiel würde ID2 ausgewählt. Außerdem wird auch ID3 angezeigt, obwohl der 14.05 hinter dem 15.05 (wie ausgewählt liegt).
Versteht ihr was ich meine und möchte? Sonst muss ich noch paar Erklräungen mehr abgeben. Wäre klasse, wenn es ne einfache und schnelle Lösung geben würde.