backbone: script schluck arrayeintrag ---> HILFE

wieso schluckt dieser php-script den ersten kompletteintrag des arrays???

ich dreh gleich durch weil ich den fehler einfach nicht finde!!!

die eigentliche funktion sollte eigentlich sein: wenn die suche feststellt das in dem array nichts ist soll sie das ausgeben.

aba wie gesagt: das funktionniert nicht :(

plz help

<?php

include('table.inc.php');

$result_test = mysql_fetch_array($search_send);

if ($submit) { if (!$result_test) { echo"<p>keine Film in der Datenbank gefunden</p>";

} else {

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

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,

    wieso schluckt dieser php-script den ersten kompletteintrag des arrays???

    weil Du exakt das sagst.

    $result_test = mysql_fetch_array($search_send);

    Hier wird die erste Zeile des Resultsets ausgelesen,

    while ($result = mysql_fetch_array($search_send)){

    und hier mit der nächsten (zweiten) beginnend der Rest durchgegangen.

    Cheatah

    --
    X-Will-Answer-Email: No
    1. Hi,

      wieso schluckt dieser php-script den ersten kompletteintrag des arrays???
      weil Du exakt das sagst.
      $result_test = mysql_fetch_array($search_send);
      Hier wird die erste Zeile des Resultsets ausgelesen,
      while ($result = mysql_fetch_array($search_send)){
      und hier mit der nächsten (zweiten) beginnend der Rest durchgegangen.

      hm....gut, und wie kann ich das dann anders lösen? könntest ma da nich helfen?

      1. Hallo backbone,

        $result_test = mysql_fetch_array($search_send);
        Hier wird die erste Zeile des Resultsets ausgelesen,
        while ($result = mysql_fetch_array($search_send)){
        und hier mit der nächsten (zweiten) beginnend der Rest durchgegangen.
        hm....gut, und wie kann ich das dann anders lösen? könntest ma da nich helfen?

        Ganz einfach: Verwende statt der while-Anweisung die do-while-Anweisung
        http://www.php.net/manual/de/control-structures.do.while.php
        Die überprüft erst am Fuß der Schleife, ob sie weitermacht.

        Gruss,

        Vinzenz

        1. Moin!

          Ganz einfach: Verwende statt der while-Anweisung die do-while-Anweisung
          http://www.php.net/manual/de/control-structures.do.while.php
          Die überprüft erst am Fuß der Schleife, ob sie weitermacht.

          So einfach gehts dann doch nicht, denn wenn die Datenbank nichts findet, kann man auch nichts lesen, und diese Schleife würde auf einen Fehler treffen - oder zumindest immer einen Datensatz versuchen auszugeben.

          Lieber mit mysql_num_rows() feststellen, wieviele Datensätze gefunden wurden. Bei "0" (Null) verzweigen in "Konnte nichts finden", ansonsten mit while die Daten ausgeben.

          - Sven Rautenberg

          --
          "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)
          1. Hallo Sven,

            Ganz einfach: Verwende statt der while-Anweisung die do-while-Anweisung
            http://www.php.net/manual/de/control-structures.do.while.php
            Die überprüft erst am Fuß der Schleife, ob sie weitermacht.
            So einfach gehts dann doch nicht, denn wenn die Datenbank nichts findet, kann man auch nichts lesen, und diese Schleife würde auf einen Fehler treffen - oder zumindest immer einen Datensatz versuchen auszugeben.

            Ist ja richtig, aber dieser Fall wurde ja bereits am Anfang abgefangen:

            aus Originalposting ...

            $result_test = mysql_fetch_array($search_send);

            if ($submit) { if (!$result_test) { echo"<p>keine Film in der Datenbank gefunden</p>";

            } else {
            ...
            while ($result = mysql_fetch_array($search_send)){

            Ende Originalposting

            Deswegen mein Vorschlag, der die geringsten Änderungen am Originalskript verlangt.

            Lieber mit mysql_num_rows() feststellen, wieviele Datensätze gefunden wurden. Bei "0" (Null) verzweigen in "Konnte nichts finden", ansonsten mit while die Daten ausgeben.

            Ist prinzipiell die bessere Idee ;-)

            Gruss,

            Vinzenz

            1. Moin!

              So einfach gehts dann doch nicht, denn wenn die Datenbank nichts findet, kann man auch nichts lesen, und diese Schleife würde auf einen Fehler treffen - oder zumindest immer einen Datensatz versuchen auszugeben.

              Ist ja richtig, aber dieser Fall wurde ja bereits am Anfang abgefangen:

              aus Originalposting ...

              [...]

              Ende Originalposting

              Eben, und das Problem des Fragers war ja, dass dann immer der erste zu findende Eintrag nicht mit ausgegeben wird. Also ist die Fallabfrage "Nichts gefunden" falsch, nicht das Auslesen aus der Datenbank.

              Deswegen mein Vorschlag, der die geringsten Änderungen am Originalskript verlangt.

              Mehr ändern ist manchmal besser - wenns dadurch auch funktioniert. ;)

              - Sven Rautenberg

              --
              "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)