elemente eines array zählen?!
backbone
- php
0 Achim Schrepfer0 Maike0 Odium
hi folks,
ich wollte den inhalt meines arrays zählen und wenn in dem array kein eintrag steht, dann sollte eine fehlermeldung ausgegeben werden. nur irgendwie kommt die meldung nicht: was mache ich falsch?
while ($result = mysql_fetch_array($search_send)){
$inhalt = count($result);
if($inhalt == "0"){echo"nichts gefunden";} else {.....
Hi,
if($inhalt == "0"){echo"nichts gefunden";} else {.....
bei einem Stringvergleich wird das auch nichts werden. Schenke mal der Null die Freiheit und es sollte klappen:
if ($inhalt == 0) { ...
^- you see?
viele Grüße
Achim Schrepfer
jo, so hatte ich das auch schon ( if ($inhalt == 0) { ... ) aba hat nicht funktionniert. könnte auch noch an was anderem liegen? hier mal der janze script:
include('table.inc.php');
if ($submit) {
echo"
<table border="0">
<tr><td width="200" height="100" valign="top" colspan="2"><p>Folgende Titel wurden gefunden</p></td></tr>
";
while ($result = mysql_fetch_array($search_send)){
$inhalt = count($result);
if($inhalt == 0){echo"fehler bei suche";} else {
echo"
<tr><td width="120"><p>ID:</p></td><td><p>$result[0]</p></td></tr>
<tr><td width="120"><p>Filmname:</p></td><td><p>$result[1]</p></td></tr>
<tr><td width="120"><p>Länge:</p></td><td><p>$result[2]</p></td></tr>
<tr><td width="120"><p>1. Sprache:</p></td><td><p>$result[3]</p></td></tr>
<tr><td width="120"><p>2. Sprach:</p></td><td><p>$result[4]</p></td></tr>
<tr><td width="120"><p>Tonquallität:</p></td><td><p>$result[5]</p></td></tr>
<tr><td width="120"><p>Bildquallität:</p></td><td><p>$result[6]</p></td></tr>
<tr><td width="120"><p>Medienanzahl:</p></td><td><p>$result[7]</p></td></tr>
<tr><td width="120"><p>Medientyp:</p></td><td><p>$result[8]</p></td></tr>
<tr><td width="120"><p>Bemerkung:</p></td><td><p>$result[9]</p></td></tr>
<tr><td width="120"><p>1. Link:</p></td><td><p>$result[10]</p></td></tr>
<tr><td width="120" height="100" valign="top"><p>2. Link:</p></td><td height="100" valign="top"><p>$result[11]</p></td></tr>
";}
}
echo"</table>";
}
else {
echo"
<form method="post" action="search.php">
<p>suche</p><input type="text" name="name" values="suche" size="20">
<input type="submit" name="submit" value="senden">
</form>
";}
?>
Hi backbone,
prüfe einfach if(!$inhalt) {...} else {...}
ciao
romy
Hi backbone,
prüfe einfach if(!$inhalt) {...} else {...}
ciao
romy
hab ich gleich mal ausprobiert aber das funktioniert auch nicht :(
Hi backbone,
was steht in Inhalt drin, lass es Dir mal ausgeben!
ausserdem was funktioniert nicht? Springt er in den falschen Zweig?
romy
Hi backbone,
was steht in Inhalt drin, lass es Dir mal ausgeben!
ausserdem was funktioniert nicht? Springt er in den falschen Zweig?romy
wenn ich var_dump über der while-abfrage mache dann steht NULL drin und wenn ich das unter der while-abfrage mache dann steht gar nichts drinn.
1. var_dump($result);
while ($result = mysql_fetch_array($search_send)){
2. var_dump($result);
$inhalt = count($result);
if(!$inhalt){echo"fehler bei suche";} else {
Hi backbone,
Ich denke mal Achim's Aussage löst Dein Problem, oder?
mit num_rows bekommst Du auf jeden Fall 0 oder irgendeine Zahl zurück und kannst dann darauf prüfen.
Warum nichts drinsteht in Result, wenn es keinen Datensatz gibt ist mir allerdings ein Rätsel...
Warum dann in Inhalt nicht drinsteht ist allerdings logisch. Hoffe es geht jetzt...?
romy
Jo, jetzt funzt es... thx
Hi backbone,
sag mal, bist Du wirklich der, der Du vorgibst zu sein? Es gibt doch gar nicht mehr so viele Leute, die Gordon Shumway kennen. Muss ganz schön hart gewesen sein, nachdem der Melmac explodiert ist, oder? ;-)
viele Grüße
Achim (heimlicheralffan) Schrepfer
Moin!
Warum nichts drinsteht in Result, wenn es keinen Datensatz gibt ist mir allerdings ein Rätsel...
Die Zuweisung ($result = mysql_fetch_array()) wird als Ergebnis false zurückgeben, wenn die Datenbank keine Ergebnisse mehr hergibt - und natürlich wird dann nicht mehr in die while-Schleife gesprungen.
- Sven Rautenberg
Hi Sven,
Die Zuweisung ($result = mysql_fetch_array()) wird als Ergebnis false zurückgeben, wenn die Datenbank keine Ergebnisse mehr hergibt - und natürlich wird dann nicht mehr in die while-Schleife gesprungen.
zu spät, hehe ;-)
viele Grüße
Achim Schrepfer
Hi,
while ($result = mysql_fetch_array($search_send)){
$inhalt = count($result);if($inhalt == 0){echo"fehler bei suche";} else {
ach so! Wenn MySQL keine Ergebniszeilen zurückliefert, wird der Block innerhalb der while-Schleife _überhaupt nicht_ ausgeführt! Prüfe am besten nach der Query mit mysql_num_rows() auf die Anzahl der gefundenen Zeilen.
viele Grüsse
Achim Schrepfer
Hi,
while ($result = mysql_fetch_array($search_send)){
$inhalt = count($result);
if($inhalt == 0){echo"fehler bei suche";} else {
ach so! Wenn MySQL keine Ergebniszeilen zurückliefert, wird der Block innerhalb der while-Schleife _überhaupt nicht_ ausgeführt! Prüfe am besten nach der Query mit mysql_num_rows() auf die Anzahl der gefundenen Zeilen.
viele Grüsse
Achim Schrepfer
super fetten dank! es funzt *freu*
thx a lot @ all helpers
if($inhalt == "0"){echo"nichts gefunden";} else {.....
Hi,
probier's mal mit:
if($inhalt == null)
dann müsste es eigentlich funktionieren!
Gruß Maike
Hallo,
count liefert einen integer zurück
"0" != 0
Odium