DB-Zeiger zurücksetzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • DB-Zeiger zurücksetzen

    Hallo,

    Ich frage eine DB ab, will aber nur eine Ausgabe generieren, wenn es überhaupt ein Ergebnis git. Das mache ich wie folgt:

    if((odbc_fetch_row($result))) {
    (Ausgabe des Ergebnisarrays)
    }


    Habe dabei allergings das Phänomen, dass ein Datensatz nicht angezeigt wird (ich denke, durch die if-Abfrage wird der Zeiger im Result-Array nach vorne gesetzt, dadurch die erste Zeile nicht mehr ausgegeben)

    Mit welcher Anweisung kann man der Zeiger zurücksetzen?

    Thanx, hell
    ...hell is just a name, not the devil...

  • #2
    Benutze while statt if und lass das Lesen in der Schleife weg.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Hallo Titus,

      das while kommt ohnehin in der Schleife zur Ausgabe, doch bevor ich den DB-Inhalt ausgebe, lass ich mir eine Zeile mit den Zellbezeichnungen ausgeben (alles innerhalt der if-Bed.):

      for($i=1; $i<4; $i++) {
      echo "<th>".odbc_field_name($result, $i)."</th>\n";
      }


      Diese Zeile möchte ich aber nicht ausgeben, wenn keine DB-Inhalte vorhanden sind, deswegen die if-Abrage.

      Hast Du eine spontane Idee, wie man sonst vorher auf DB-Inhalt checken kann?

      Thanx, hell
      ...hell is just a name, not the devil...

      Kommentar


      • #4
        $how = mysql_num_rows($result);
        if($how < 1) { echo "nix gefunden"; }
        else { echo "<th>bla bla </th>"; }

        feddich
        h.a.n.d.
        Schmalle

        http://impressed.by
        http://blog.schmalenberger.it



        Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
        ... nur ohne :-)

        Kommentar


        • #5
          Hallo Schmalle,
          Prinzip verstanden, gute Idee!

          Leider arbeite ich über ODBC (auf einer FoxPro-DB) und bekomme auf odbc_num_rows() immer -1 eins wieder (ist auch so als gewöhnlich beschrieben)...

          Fällt Dir entsprechende Möglichkeit ein? Hab über ODBC nix vergleichbares gefunden

          Nun gut, vorerst schon mal thanx, hell
          ...hell is just a name, not the devil...

          Kommentar


          • #6
            wenn du bei odbc_num_rows($abfrage) -1 erhältst, hast du wohl vorher noch keine abfrage gemacht ...

            also erst daten selecten, dann zählen ... wenn mehr als 0 ausgeben sonst nix
            h.a.n.d.
            Schmalle

            http://impressed.by
            http://blog.schmalenberger.it



            Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
            ... nur ohne :-)

            Kommentar


            • #7
              Original geschrieben von schmalle
              wenn du bei odbc_num_rows($abfrage) -1 erhältst, hast du wohl vorher noch keine abfrage gemacht ...

              also erst daten selecten, dann zählen ... wenn mehr als 0 ausgeben sonst nix
              @schmalle: NÖ: Note: Using odbc_num_rows() to determine the number of rows available after a SELECT will return -1 with many drivers.

              @hell: Im Zweifel ... wenn's nicht anders geht würde ich die Anzahl der Datensätze über ein SELECT COUNT(*) FROM ...
              ermitteln.
              Zuletzt geändert von goth; 08.05.2002, 11:12.
              carpe noctem

              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

              Kommentar

              Lädt...
              X