PHP MySQL Uhrzeit

lockcat

Erfahrenes Mitglied
Hallo liebe PHP Freunde :D

ich habe mal wieder ein anliegen, frage,

gehen wir davon aus das in der Datenbank drei werte stehen:
Datum: 01.04.2015
Startzeit: 14:00
Endzeit: 15:00

Wie kann ich am besten verhindern dass am 01.04.2015 kein weitere Eintrag hinterlegt wird der zwischen Start- und End-zeit liegt?

Mache ich dies mit einer IF Anweisung? mir fehlt da grade die Logik.

Ich hoffe ihr könnt mir Hilfreiche Tipps geben keine Korrekte Lösung will es selber probieren :D

Lieben Gruß
 
Willst du das mit SQL oder mit PHP lösen?

Grundsätzlich hätte ich ungetestet gesagt
Code:
NOT value BETWEEN (datum+startzeit) AND (datum+endzeit)
 
Ich habe es nun gelöst zwar etwas anders aber es erfüllt den Zweck ;D

Danke nochmals

PHP:
$qry = "SELECT * FROM sendeplan WHERE start > '" . $beginn . "' AND end < '" . $ende . "' OR end > '" . $beginn . "' AND start < '" . $ende . "' AND datum = '".$d."' ";

$res0 = mysqli_query($mysqli, $qry) or die('-1'.mysqli_error());
 
Hallo lockcat,
die Abfrage bezieht so aber nur die Endzeit auf das Datum.
Wenn du die Startzeit auch auf das Datum beziehen willst muss das ungefähr so aussehen.

SQL:
$qry="SELECT * FROM sendeplan WHERE ( start > '".$beginn."' AND end < '".$ende."' OR end > '".$beginn."' AND start < '".$ende."' ) AND datum = '".$d."' ";

Da ich nicht genau weiß, wie du die Variablen ($beginn, $ende, $d) füllst möchte ich zumindest darauf hinweisen, das du die Werte Escapen solltest, wenn es direkte Nutzereingaben sind!
Des weiteren sind die mysql_*-Funktionen Deprecated, dass bedeutet diese werden in "kürze" aus PHP-Entfernt.
Gewöhne dir das nutzen gar nicht erst an oder besser schnell lieber die Nutzung von Mysqli bzw. PDO an!
 
Hi merzi86,

danke für denn Hinweis, viel mir erst gar-nicht auf. :D hab es nun abgeändert.
Alle Daten die ich via POST oder GET entgegen nehme, Escape ich via real_escape_string.
Ich nutze doch Mysqli.

Gruß
 
ahh entschuldige ich habe anscheinend doch schon Tomaten auf den Augen! Hatte irgendwie immer nur mysql gelesen XD
 
Das Problem ist leider, dass es zu viele alte Tutorials gibt, die nicht mehr gepflegt werden.

Da sind die häufigsten Probleme halt, das entweder die mysql_* Funktionen genutzt werden oder was noch extremer ist noch mit register_globals gearbeitet wird.
 
Wenn dies das einzige Problem wäre, wenn ich mir so einige Tutorials ansehe fällt mir immer gleich die display_errors auf die voll ausgibt. Leider wird nie beschrieben dass dies doch nur im Debugging passieren sollte. Das gleiche ist bei mysql_error() oder der gleichen.

Jedoch muss ich sagen am Anfang sah es bei mir nicht anders aus, nach und nach beim lernen kam es dann, kommt es immer noch :D

Heute empfinde ich es z.B für wichtig Datenbank Einträge zu verschlüsseln, damals nicht.
 

Neue Beiträge

Zurück