Hallo,
Ja, aber: Don't repeat yourself! Den String der Query kannst du bis auf den WHERE-Teil in einer Variable ablegen (vor dem if ($id)). Für den einen Fall nimmst du dann die Variable, für den anderen die Variable zuzüglich WHERE-Teil.
wenn ich dich richtig verstanden habe, dann sollte es so aussehen?
function admin_Benefits($mysqli, $id=false) {
$select = "SELECT b_id, b_projekt, b_titel, b_bild, b_video, b_beschreibung, b_anzahl, b_preis, b_status, p_titel FROM benefits LEFT JOIN projekte ON projekte.p_id = benefits.b_projekt ";
if ($id) {
$stmt = $mysqli->prepare("$select WHERE b_projekt = ? ");
$stmt->bind_param("s", $id);
} else {
$stmt = $mysqli->prepare("$select");
}
$stmt->execute();