hi,
ich führe ein abfrage mittels einer selbstdefnierten funktion durch. möchte ich nun abklären, ob die abfrage einen wert enthält, verwende ich empty().
interessanterweise funktioniert empty() bei der abfrage mit der funktion nicht, jedoch wenn ich die abfrage direkt ausführe.
zur veranschaulichung:
abfrage mit funktion:
PHP-Code:
// ************* Abfragefunktion ***********
function Abfrage($sql) {
global $conn;
$result = mysql_query($sql, $conn);
if (!$result) {
print("$result-Fehler");
}
else {
$aDatensaetze = array();
while ($dDatensatz = mysql_fetch_assoc($result)) {
array_push($aDatensaetze, $dDatensatz);
}
}
return $aDatensaetze;
}
// --------------- Ende der Abfragefunktion ----------------------
// Funktionsaufruf:
$abfrage = Abfrage("SELECT * FROM tabelle");
if (empty($abfrage)) {
print("Nix drin...");
}
Abfrage direkt:
PHP-Code:
$result = mysql_query(("SELECT * FROM tabelle", $conn);
$aDatensaetze = array();
while ($dDatensatz = mysql_fetch_assoc($result)) {
array_push($aDatensaetze, $dDatensatz);
}
$abfrage = $aDatensaetze;
if (empty($abfrage)) {
print("Nix drin...");
}
bei abfrage mit der funktion wird nichts geschrieben, bei direkter abfrage wird "Nix drin" geschrieben.
eigentlich sollten beide varianten gleich sein, oder? :

: