Hallo,
<?php
function kundenmeinungen($sort = "DESC") {
if($sort != "ASC" && $sort != "DESC") {
return false;
}
vergiss die Anmerkung von M., dass $sort hier nicht definiert sei: Du hast im Kopf der Funktion einen Defaultwert, nämlich "DESC" angegeben. Wenn die Funktion also ohne Parameter aufgerufen wird, hat $sort diesen Defaultwert. Das ist völlig okay.
> ~~~php
$stmt = $mysqli->prepare("KdM_id, KdM_name, KdM_nachricht, KdM_status FROM web_kundenmeinungen ORDER BY KdM_id " . $sort);
> $stmt->execute();
>
> return $stmt->fetchAll(PDO::FETCH_ASSOC);
> }
> ?>
Notice: Undefined variable: mysqli in in Zeile 7 & Fatal error: Call to a member function prepare() on a non-object
in Zeile 7. In der Zeile 7 steht $stmt = $mysqli->prepare ....
Ja, aber du missachtest hier eine Design-Grundregel von Funktionen: Funktionen bilden einen in sich abgeschlossenen Gültigkeitsbereich. Im Idealfall kennen Funktionen nur die Daten, die man ihnen ausdrücklich als Parameter übergibt und sind von ihrer Umgebung unabhängig.
In manchen Programmiersprachen können und dürfen Funktionen auch auf globale Daten zugreifen (auch wenn das nicht wirklich sauber ist); in PHP gilt das nicht. Hier ist $mysqli außerhalb der Funktion deklariert, demzufolge innerhalb nicht bekannt.
Entweder machst du nun $mysqli auch innerhalb der Funktion mit dem Schlüsselwort global bekannt (quick'n'dirty, vor allem dirty), oder du übergibst das mysqli-Objekt als ersten Pflicht-Parameter.
So long,
Martin
Dem Philosoph ist nichts zu doof.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(