Sophie: PHP Funktion mit unbekannten Werten

Beitrag lesen

Hallo,

vielleicht könnt ihr mir weiterhelfen. Ich habe eine kleine PHP Funktion

 function zeiterfassung($mysqli, $name=false, $projektnummer=false, 
                                 $datum_von=false, $datum_bis=false) {
        
       $select = "SELECT id, code, projektnummer, name, datum, betreff, anzStunden, jahr, monat, tag
                  FROM zeiterfassung ";
        
        if ($projektnummer) {
                
                $stmt = $mysqli->prepare($select . " WHERE projektnummer =?" );
                $stmt->bind_param("s", $projektnummer);
                
        } else {
                $stmt = $mysqli->prepare($select);
        }

        if ($name) {
                
                $stmt = $mysqli->prepare($select . " WHERE name =?" );
                $stmt->bind_param("s", $name);
                
        } else {
            $stmt = $mysqli->prepare($select);
        }

        $stmt->execute();
        $stmt->bind_result($id, $code, $projektnummer, $name, $datum, $betreff, $anzStunden,
                           $jahr, $monat, $tag);
        $stmt->store_result();

Ich möchte gerne nach allem suchen können. Also entweder nach Namen, Projektnummer oder dem Datum, oder auch mal nach zwei Kombinationen gleichzeig also z.B. Name = Sophie Projektnummer A0101

Ich habe gehört, dass bind_param() immer alle Werte benötigt, die rein kommen und man die Funktion call_user_func_array nehmen muss. Allerdings verstehe ich nicht, wie ich diese auf meine Funktion anwenden soll.

Der Aufruf meiner Funktion

$name			      = NULL;
$projektnummer	= NULL;
$datum_von 		  = NULL;
$datum_bis 		  = NULL;

if(isset($_POST['abschicken'])){
	
	if(!empty($_POST['name'])) { $name = $_POST['_name']; }
	if(!empty($_POST['projektnummer'])) { $projektnummer = $_POST['projektnummer']; }
	if(!empty($_POST['datum_von'])) { $datum_von = $_POST['datum_von']; }
	if(!empty($_POST['datum_bis'])) { $datum_bis = $_POST['datum_bis']; }

}

$zeiterfassung_ausgabe = zeiterfassung($mysqli, $name, $projektnummer, $datum_von, $datum_bis);

akzeptierte Antworten