Auge: PHP Funktion zweimal verwenden?

Beitrag lesen

Hallo

ich beschäftige mich derzeit mit Funktionen. Dazu hätte ich eine Frage.

Ich würde gerne diese Funktion an zwei Stellen verwenden. Soweit kein Problem. Allerdings sollte an der zweiten Stelle, alle Firmen ausgelesen werden, das AND intern = 0 ist demzufolge störend.

Habe ich die Möglichkeit dieses mit einer Funktion zu machen oder muss ich diese kopieren und unter einem anderen Namen abspeichern?

Nein. Du kannst einen weiteren Parameter an die Funktion übergeben und anhand deren Wert den Query ändern. Ich setze mal den zweiten parameter als optionalen Parameter, der also wegelassen werden kann udn dann, wenn er eingesetzt wird, den Wert true haben muss.

function firmen($mysqli, $all = false) {

if ($all === true) {
    $stmt = $mysqli->prepare("SELECT id, code, firma, abteilung, sort, ab_an, signup_an, intern FROM firmen WHERE signup_an = 1 ORDER by sort ASC");
} else {
    $stmt = $mysqli->prepare("SELECT id, code, firma, abteilung, sort, ab_an, signup_an, intern FROM firmen WHERE signup_an = 1 AND intern = 0 ORDER by sort ASC");
}
/* ... weiterer Code ... */
}

Der Aufruf erfolgt ohne (intern ist dann 0) oder mit dem zweiten Parameter (Wert true), so dass die Abfrage die Spalte intern nicht berücksichtigt.

Tschö, Auge

--
Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
Toller Dampf voraus von Terry Pratchett