backbone: elemente eines array zählen?!

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 {.....

  1. 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

    1. 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>

      ";}
      ?>

      1. Hi backbone,

        prüfe einfach if(!$inhalt) {...} else {...}

        ciao
        romy

        --
        DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
        ->Alles ist gut wenn es aus Schokolade ist
        1. Hi backbone,
          prüfe einfach if(!$inhalt) {...} else {...}
          ciao
          romy

          hab ich gleich mal ausprobiert aber das funktioniert auch nicht :(

          1. Hi backbone,

            was steht in Inhalt drin, lass es Dir mal ausgeben!
            ausserdem was funktioniert nicht? Springt er in den falschen Zweig?

            romy

            --
            DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
            ->Alles ist gut wenn es aus Schokolade ist
            1. 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 {

              1. 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

                --
                DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
                ->Alles ist gut wenn es aus Schokolade ist
                1. Jo, jetzt funzt es... thx

                  1. 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

                2. 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

                  --
                  "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)
                  1. 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

      2. 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

        1. 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

  2. if($inhalt == "0"){echo"nichts gefunden";} else {.....

    Hi,
    probier's mal mit:

    if($inhalt == null)

    dann müsste es eigentlich funktionieren!
    Gruß Maike

  3. Hallo,

    count liefert einen integer zurück

    "0" != 0

    Odium