count gibt 1 zurück
Murida
- php
1 MudGuard
0 Vinzenz Mai
Hallo
Ich habe diesen Code:
$res1 = mysql_query("SELECT * FROM termine WHERE id='".htmlspecialchars($_GET['id'])."'");
$datensatz = mysql_fetch_assoc($res1);
print_r($datensatz);
echo $datensatz;
echo count($datensatz);
Wenn ich hier eine id mit 17 übergebe (die es in der Tabelle nicht gibt), bekomme ich nur die Zahl 1 zurückgeliefert.
Warum print_r und der echo $datensatz mir nichts zurückliefern, ist mir klar.
Aber warum um alles in der Welt sagt count, dass es 1 Element im eigentlich leeren Array gäbe?
Im Manual sehe ich nicht, dass count auch bei leerem Array eine 1 zurückgeben kann.
Danke
murida
Hi,
$res1 = mysql_query("SELECT * FROM termine WHERE id='".htmlspecialchars($_GET['id'])."'");
$datensatz = mysql_fetch_assoc($res1);
echo count($datensatz);
>
> Wenn ich hier eine id mit 17 übergebe (die es in der Tabelle nicht gibt), bekomme ich nur die Zahl 1 zurückgeliefert.
> Aber warum um alles in der Welt sagt count, dass es 1 Element im eigentlich leeren Array gäbe?
If var is not an array, 1 will be returned (exception: count(NULL) equals 0).
Wenn keine Datensätze vorhanden sind, ist $datensatz kein array.
cu,
Andreas
--
[Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)
[Schreinerei Waechter](http://www.schreinerei-waechter.de/)
[O o ostern ...](http://ostereier.andreas-waechter.de/)
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
Hallo Murida,
das hat zwar nichts mit Deiner Frage zu tun, aber woher hast Du Dein Konstrukt?
$res1 = mysql_query("SELECT * FROM termine WHERE id='".htmlspecialchars($_GET['id'])."'");
was soll das bewirken? Statt htmlspecialchars() solltest Du eher mysql_real_escape_string() verwenden, ggf. vorher in Abhängigkeit der unsäglichen Magic Quotes noch stripslashes() wie im Handbuchabschnitt zu mysql_real_escape_string() beschrieben.
Statt des folgenden Codes
$datensatz = mysql_fetch_assoc($res1);
// ah ja, und wenn kein Datensatz vorhanden ist? Was dann?
print_r($datensatz);
echo $datensatz;
echo count($datensatz);
möchtest Du liebermysql_num_rows() verwenden und ersparst Dir Deine Raterei.
Im Manual sehe ich nicht, dass count auch bei leerem Array eine 1 zurückgeben kann.
siehe Andreas Posting
Freundliche Grüße
Vinzenz