Datenbank auslesen, arrays, schleifen --- aber wie ???

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenbank auslesen, arrays, schleifen --- aber wie ???

    Hallo...

    ích habe in diesem Forum schon nach einer Lösung gesucht, habe aber leider nichts gefunden und hoffe nun auf Eure Hilfe.
    Stecke momentan fest und komme nicht weiter ..

    Was ich habe:

    eine Mysql-Datenbank.
    Vereinfacht dargestellt enthält sie folgende Daten:

    FLUGNUMMER | FLUGDATUM | DATENVON|Name| ... etc...
    ----------------------------------------------------------------
    LH 1234 | 2004-10-01 | 1 | Mueller |
    LH 1234 | 2004-10-01 | 1 | Meier |
    LH 1234 | 2004-10-01 | 1 | Rümpel |
    LH 5678 | 2004-10-01 | 1 | Apfel |
    LH 440 | 2004-09-30 | 1 | Herrmann |
    u.s.w.

    Mein Problem:

    Ich möchte die Datenbank auslesen und ausgeben.
    Dabei Soll bei gleichen Flugnummern am gleichen Flugtag aber nur bei
    der ersten Zeile bei Datenvon eine 1 ausgegeben werden, bei den anderen gleichen dann nicht.
    Bsp:

    LH 1234 | 2004-10-01 | 1 | Mueller |
    LH 1234 | 2004-10-01 | 0 | Meier |
    LH 1234 | 2004-10-01 | 0 | Rümpel |
    LH 5678 | 2004-10-01 | 1 | Apfel |
    LH 440 | 2004-09-30 | 1 | Herrmann |

    Momentan habe ich eine schleiche, mit zwei select befehlen.
    Zuerst´wird ein Datensatz ausgelesen, dann mit dem zweiten SELECT-Befehl die gähnlichen Daten gesucht und auch ausgegeben.
    Soweit ganz schön. Aber dann geht die Schleife weiter und gibt mir die bereits mit dem zweiten SELECT Befehl ausgegebenen Datensätzen erneut aus.

    Lösung ?
    Ich dachte irgendwie an Schleifen oder Arrays, hänge aber wie gesagt momentan total fest ...
    Kann mir jemand helfen ???
    Vielen Dank :-)


    Gruß

    D.M.

  • #2
    Hallo fraeyodm
    Warum Mueller und nicht Meier? Weil er "zuerst" in der DB kommt?
    Hast Du einen primary key bzw auto_inc?

    Comment


    • #3
      alles auslesen und nach flugnummer sortieren

      vor der while-schleife zur ausgabe setzt du
      PHP Code:
      $flugnummer_alt 'lirum larum löffelstiel'
      und in der schleife vergleichst du $flugnummr_alt mit der flugnummer des gerade gelesenen datensatzes

      sind die zwei werte unterschiedlich, gibst du eine 1 aus und weist $flugnummer_alt die flugnummer des gerade gelesenen datensatzes zu
      Ich denke, also bin ich. - Einige sind trotzdem...

      Comment


      • #4
        wow - geht ja fix hier

        Hallo ....
        wow ... hier gibt es ja schnell antworten:
        fUser: die Reihenfolge der Namen ist relativ egal... In der Datenbank werden sie nicht in Alpabetischer Reihenfolge eingegeben.
        Es kibt eine Zelle KONTAKT, die ist autoincrement ...


        mrhappines:

        das heißt aber ich bräuchte mehrere schleifen - oder ???
        die ausgabe erfolgt sortiert nach bearbeitungsdatum - dann nach flugnummer.

        das hieße ich müsste eine schleife machen um die ganzen bearbdatums rauszulesen und dann je bearbdatum eine schleife machen in der flugnummer und flugdatum überprüft werden und dann dieser datenvonzähler auf eins oder null gesetzt wird - oder ???

        LG

        D.M.

        Comment


        • #5
          Re: wow - geht ja fix hier

          Original geschrieben von fraeyodm
          das hieße ich müsste eine schleife machen um die ganzen bearbdatums rauszulesen und dann je bearbdatum eine schleife machen in der flugnummer und flugdatum überprüft werden und dann dieser datenvonzähler auf eins oder null gesetzt wird - oder ???
          du lässt einfach die DB schon nach flugdatum und flugnummer sortieren, und machst dann eine schleife über die ergebnismenge, in der du dann einen gruppenwechsel implementierst (suchstichwort!).
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Comment


          • #6
            nein eine reicht doch schon. OK im Klartext:

            Du sortierst die Daten bereits in deiner Query, e.g.
            PHP Code:
            select whateveryouneed from yourtable where <yourconditionorder by dtedit,strflightno 
            Dann liest du den 1. DS aus, gibt sie aus speichert aber die Flugnummer in einer $Var
            PHP Code:
            $row mysql_fetch_array ....
            // ... Datenausgabe
            $old_no $row['strflightno']; 
            dann liest du den Rest mit einer While-Schleife. Vor jede Ausgabe prüfst du die aktuelle Flugnummer mit $old_no, wenn sie gleich sind, dann z.B. <td>& nbsp;</td> ausgeben, wenn nicht dann aktueller Wert ausgeben und $old_no zuweisen. That's it.
            PHP Code:
            while (...) {
                if .... {
                 
            // hier z.B. <td>&nbsp;</td> ausgeben
                
            }
                else {
                
            //  aktueller Wert ausgeben und $old_no zuweisen
                
            }

            Comment


            • #7
              das hört sich sehr gut an asp2php

              nur noch eine frage...

              mit $row = mysql_fetch_array .... bekomme ich den ersten Datensatz
              was muß jetzt aber in die schleife rein damit er in dieser ab dem zweiten satz beginnt und nicht wieder ab dem ersten ???

              denn hier...
              while (...) {
              if .... {
              // hier z.B. <td>&nbsp;</td> ausgeben
              }
              else {
              // aktueller Wert ausgeben und $old_no zuweisen
              }
              }

              müßte ja wieder ein fetch_array rein ... gelle ???

              Comment


              • #8
                darauf gibts nur eine kurze Antwort, welche aus 4 roten Buchstaben besteht und sich in meiner Signatur befindet, die wiederum von 2 (böse) Smilies flankiert ist.

                Comment


                • #9
                  dumm das ich in diesem Forum neu bin und mit
                  dieser Abkürzung nix anfangen kann ...
                  aber danke für diesen denkanstoß´....

                  versuche das jetzt umzusetzen

                  Comment


                  • #10
                    dumm das ich in diesem Forum neu bin und mit
                    nee, dumm, daß du in der welt der computer neu bist.

                    lies das verf...te handbuch wird wohl jeder schon mal gehört haben, und wenn nicht, kann man ja auch suchen, ... falls man .. ach, ich spars mir
                    Die Zeit hat ihre Kinder längst gefressen

                    Comment


                    • #11
                      Original geschrieben von fraeyodm
                      ...und mit dieser Abkürzung nix anfangen kann ...
                      http://www.net-lexikon.de/RTFM.html
                      EDIT:
                      der Link ist nun auch bei RTFM in meiner Sig. eingebaut
                      Last edited by asp2php; 24-06-2004, 12:14.

                      Comment


                      • #12
                        RTFM /R-T-F-M/ imp.
                        Abbreviation for `Read The Fucking Manual'. Used by gurus to brush off questions they consider trivial or annoying.
                        *g* asp2php is also ein guru
                        [color=red]Geht nicht[/color] ist keine Fehlermeldung

                        Comment


                        • #13
                          Original geschrieben von Big Chief
                          *g* asp2php is also ein guru
                          nein, bin ein Mensch

                          Comment


                          • #14
                            Original geschrieben von asp2php
                            darauf gibts nur eine kurze Antwort, welche aus 4 roten Buchstaben besteht und sich in meiner Signatur befindet, die wiederum von 2 (böse) Smilies flankiert ist.
                            Jetzt ist er blau *gg* nur mal sagen will

                            *g* OK vorher war er rot
                            Programmieren ist wie küssen: Man kann darüber reden, man kann es beschreiben, aber man weiß erst, was es bedeutet, wenn man es getan hat.

                            Comment

                            Working...
                            X