MySQL Datenbankabfrage

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

  • MySQL Datenbankabfrage

    Hallo liebe PHP`ler,
    habe folgendes Problem: In einer MySQL Tabelle sind die Daten wie folgt angeordnet:



    Ich bräuchte Sie aber in der folgenden Form:



    Also nur 1 Zeile pro Datensatz!
    Kann jemand helfen?

    gtx.epsylon

  • #2
    Da bin ich ja mal gespannt auf Kommentare ... ich sag lieber nichts ... !
    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


    • #3
      ???

      Vielen Dank goth für diese erhellende Antwort!

      gtx.epsylon

      Kommentar


      • #4
        Ich weis was goth damit meint. Und zwar ist deine DB-Struktur "etwas" perfomance-schädigend.

        Sagen wir mal, du hast 20 Artikel, dann brausch du insgesamt 80 Zeilen dafür,, hiermit bräuchtest du aber nur 20 Zeilen für 20 Artikel:

        --- orders_id --- .mwst ---- Versand--- ...
        --- 22222 --- 8,26 ----- 2 ...
        ---- 22221 --- 4,00 ----- 2 ...
        ...

        Wäre besser als für jeden Wert eine neue zeile anzulegen

        Das hast du gemeint, oder goth?

        Forumregeln!

        Gute PHP-(tutorial-)Seiten

        Kommentar


        • #5
          perfomance-schädigend

          Hallo davidovich,

          dass dieser Aufbau nicht das gelbe vom Ei ist weiß ich selbst.

          Da diese Tabelle Teil eines Shops mit 52, miteinander in verbindung stehender, MySQL Tabellen ist und ich OSCommerce nicht neu erfinden möchte, muß ich den Tabellenaufbau leider als so gegeben hinnehmen.

          Die Datenbankabfrage würde auch nur 1-2 mal im Monat für einen Report für den Steuerberater aus der adminebene heraus benötigt.

          Gibt es hier überhaup eine vernünftige Lösung?


          gtx.epsylon

          Kommentar


          • #6
            Auch auf die Gefahr hin, dass ich ne Breitseite von Goth kassiere ...

            Ich seh zunächst einmal nur die Möglichkeit einfach alle DS auszulesen und in ner while-schleife durchzulaufen. Dabei werden alle Daten, die zu einer order_id gehören erstmal in einem Array gesammelt. Das Array würde ich wie folgt aufbauen:
            als Indexl den Inhalt der Tabellenspalt 'class' (diese scheint eindeutig zu sein) und als Inhalt eben die Spalte 'value'.

            Erst wenn die order_id wechselt erfolgt die Zusammenstellung einer Ausgabe und du suchst dir eben in diesem Array die gewünschten Elemente zusammen:

            PHP-Code:
            echo $array['ot_total']; // liefert Gesamtsumme
            echo $array['ot_shipping']; // liefert Versandkosten
            //etc. 
            Nach des Ausgabe wird das Array gelöscht und kann für die nächste order_id von neuem gefüllt werden.
            [color=red]Geht nicht[/color] ist keine Fehlermeldung

            Kommentar


            • #7
              Nö ... wieso 'ne Breitseite ... bei so einem zurechtgestümperten Datenbank-Entwurf würde mir sicher auch (kaum) was anderes einfallen ...

              Zwar war mir dieses Beispiel nicht (mehr) bekannt, allerdings muß ich zugeben, das dieses ranzige ... aber dennoch hochgelobte ... Stück Software einer der Gründe dafür ist das ich mein eigenes Shop-System entwickle ... endlich einmal eines wo nicht sämtliche Software Entwickler nicht den blassesten Hauch von Datenbank Entwurfs Theorie haben ... !
              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