Guten Morgen,
ich habe den Fehler gefunden. Ich habe eine Funktion ist wie folgt aufgebaut ist:
function zeiterfassung($mysqli, $name=false, $projektnummer=false,
$datum_von=false, $datum_bis=false) {
$select = "SELECT id, projektnummer, name, datum, anzStunden,
FROM zeiterfassung";
if ($projektnummer != false && $name != false) {
$param = '%'.$projektnummer.'%';
$stmt = $mysqli->prepare($select . " WHERE projektnummer Like ? AND name=?" );
$stmt->bind_param("ss", $param, $name);
} elseif ($projektnummer != false) {
$param = '%'.$projektnummer.'%';
$stmt = $mysqli->prepare($select . " WHERE projektnummer Like ?" );
$stmt->bind_param("s", $param);
} elseif ($name != false) {
$stmt = $mysqli->prepare($select . " WHERE name =?" );
$stmt->bind_param("s", $name);
} elseif ($datum_von != false) {
$stmt = $mysqli->prepare($select . " WHERE datum =?" );
$stmt->bind_param("s", $datum_von);
} elseif ($datum_bis != false) {
$stmt = $mysqli->prepare($select . " WHERE datum <=?" );
$stmt->bind_param("s", $datum_bis);
} elseif ($datum_von != false && $datum_bis != false) {
$stmt = $mysqli->prepare($select . " WHERE datum BETWEEN ? AND ? " );
$stmt->bind_param("ss", $datum_von, $datum_bis);
} else {
$stmt = $mysqli->prepare($select);
}
Wenn ich diese so nutze, geht mein Between in der letzten Zeile nicht. Jetzt habe ich zum Teste die Funktion etwas gekürzt
function zeiterfassung($mysqli, $name=false, $projektnummer=false,
$datum_von=false, $datum_bis=false) {
$select = "SELECT id, projektnummer, name, datum, anzStunden,
FROM zeiterfassung";
if ($datum_von != false && $datum_bis != false) {
$stmt = $mysqli->prepare($select . " WHERE datum BETWEEN ? AND ? " );
$stmt->bind_param("ss", $datum_von, $datum_bis);
} else {
$stmt = $mysqli->prepare($select);
}
Und siehe da, mein BETWEEN funktioniert. Aber warum? Was stimmt denn mit dem IF Bereich nicht?