Hallo,
ich mache über PHP folgende Abfrage:
mysql_connect('localhost');
mysql_select_db("galerie");
$result = mysql_query("SELECT name, titel FROM album WHERE name = '" . $_POST["gname"] . "'");
while($row = mysql_fetch_array($result)) {
mach_was();
}
Nun ich will überprüfen, ob meine mir meine Abfrage überhaupt irgendwelche Ergebnisse liefert. Abzufragen ob $result FALSE ist bringt ja nichts.
Das alleine sagt jedoch überhaupt nichts über die Anzahl
veränderter oder gelieferter Datensätze aus.
(http://www.php.net/manual/de/function.mysql-query.php)
Laut der Funktionsbeschreibung von mysql_fetch_array müsste FALSE zurückgegeben werden wenn keine Datensätze vorhanden sind, also habe ich übeprüft ob $row["name"] bzw. $row["titel"] FALSE ist, komischerweise hat das nicht funktioniert.
Nach kurzer Recherche bin ich auf die Funktion mysql_num_rows() gestoßen, habe die Funktion innerhalb der Schleife wie folgt angewendet:
$anzahl = mysql_num_rows($result);
if ($anzahl != "" AND $tempvar != "0") {
mach_was1();
} else {
mach_was2();
}
Liefert mir die SQL-Abfrage Ergebnisse wird mach_was1() (seht es als Platzhalter) ausgeführt, gibt es keine Ergebnisse müsste dann doch eigentlich das ausgeführt werden was nach else kommt. Aber - quelle surprise - es passiert nichts.
$row["name"] und $row["titel"] habe ich übrigens auch mit isset() überprüft, nix führte zum Ziel.
Hat irgendjemand eine Idee wie ich mein Problem lösen könnte?
Viele Grüße
Paul
Meine Photos: http://www.rapunzeln.de
Meine Tribals: http://www.tribal-galerie.de