Kategorien erstellen (Expode) ?

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

  • Kategorien erstellen (Expode) ?

    Hallo,

    muss Euch noch mal um Hilfe bitten.

    Und zwar habe ich in meiner DB ne Artikelliste.
    PHP-Code:
    SELECT COUNT( * ) AS `zeilen` , `gruppe`
    FROM `artikel`
    GROUP BY `gruppe`
    ORDER BY `artikel`.`gruppe
    Aus dieser lese ich erst einmal die Kategorien aus. Abgeschaut von PMA

    Sieht so aus:
    --schnipp--
    PHP-Code:
     PC-Komponenten Mainboards ATX Sockel 754 DDR
     PC
    -Komponenten Mainboards ATX Sockel 775 DDR
     PC
    -Komponenten Mainboards ATX Sockel 775 DDR2
     PC
    -Komponenten Mainboards ATX Sockel 939 DDR
     PC
    -Komponenten Mainboards ATX Sockel AM2 DDR2
     PC
    -Komponenten Mainboards MATX Sockel 478 DDR
     PC
    -Komponenten Mainboards MATX Sockel 754 DDR
     PC
    -Komponenten Mainboards MATX Sockel 775 DDR2
     PC
    -Komponenten Mainboards MATX Sockel 939 DDR
     PC
    -Komponenten RAM Desktop DDR 266 Mhz
     PC
    -Komponenten Festplatten 2.5 Zoll Extern 
    --schnapp--

    Nun wollte ich mit Explode einzelne Kategorien generieren. -> klappt aber nicht so wie ich mir das gedacht hatte.

    Weil ich natürlich 10 x "Komponenten" ausgegeben bekomme. Soll ja nur 1 x ausgegeben werden.

    Wie kann ich nun daraus am leichtesten Katalogisieren.
    Und sollte ich es in PHP machen oder schon in SQL ?

    Kann mir jemand einen Tip geben ?

    Cu Susi
    PHP 8.0, MariaDB 10.5 auf U20.04

  • #2
    Re: Kategorien erstellen (Expode) ?

    Original geschrieben von SusiSorglos
    Nun wollte ich mit Explode einzelne Kategorien generieren. -> klappt aber nicht so wie ich mir das gedacht hatte.
    Und wie hast du es dir gedacht ...?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      PHP-Code:
      while($row mysql_fetch_assoc($query_kat)){
      $teile explode(" - "$row[gruppe]);

      echo     
      $teile[0]."<br>";

      PHP-Code:
      artikel       varchar(6)                   
      bezeichnung     varchar(255)             
      gruppe     varchar(255)             
      hersteller     varchar(255)             
      preis     decimal(5,2
      - Komponenten
      ---- Mainboards
      --------- ATX
      ---------------Sockel
      usw.usw.

      Dachte mir das ganze dann je nach Unterrubrik aus der DB auszulesen.
      ??Gute idee- schlechte idee ??
      Zuletzt geändert von SusiSorglos; 10.06.2007, 23:56.
      PHP 8.0, MariaDB 10.5 auf U20.04

      Kommentar


      • #4
        Wenn ich das richtig verstanden habe, dann ist dein Datenbankdesign Mist.

        Faustregel: sobald du versuchst, mehr als eine Sache in einem Feld abzuspeichern, ist was ganz gehörig faul.

        Mach eine Tabellen mit Kategorien und jeweils Tabellen für die Unterkategorien. Die Komponenten kriegen dann Spalten, wo die entsprechende ID drinsteht. Abfragen tut man das mit Joins.

        Dies war ein Kurz-Grundkurs in Normalisierung
        ich glaube

        Kommentar


        • #5
          Naja ich hab die ArtikelListe in .xls vorliegen.
          Die Struktur war jetzt mal nur so ne Idee von mir, so liegt sie mir auch vor (in 5 Spalten)

          So dachte ich mir gehts am einfachsten.
          Aber ich kann doch nicht 345 Kategorien in einzelne Tabellen packen?!

          Zumal das Automatisch gehen müsste weil ich ja jede Woche ne neue ArtListe in die DB Importieren will.


          --edit
          Also je länger ich drüber nachdenke glaube ich das ich wohl nicht hin bekomme.

          Wie mache ich es am besten mit solch einer Struktur.
          Sorry wegen der Überlänge
          EDIT:
          Ebenso sorry für Code rausgeschmissen.
          wahsaga

          Zuletzt geändert von wahsaga; 11.06.2007, 08:30.
          PHP 8.0, MariaDB 10.5 auf U20.04

          Kommentar


          • #6
            Original geschrieben von SusiSorglos
            - Komponenten
            ---- Mainboards
            --------- ATX
            ---------------Sockel
            usw.usw.
            Na dann - mehrstufiger Gruppenwechsel.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Aber ich kann doch nicht 345 Kategorien in einzelne Tabellen packen?!
              Ne, du sollst ja auch eine Tabelle machen, wo nur die Kategorien drinstehen
              ich glaube

              Kommentar


              • #8
                Du solltest dir mal bei deinem Datenbankschema beziehungen anschauen.
                Das sollte Grundkentniss sein um eine vernüftige Datenbank aufzubauen.

                In deinem Fall wirst du eine n/m Beziehung brauchen.
                Dann ist auch die Datenabfrage ein Kinderspiel bwz. Easy.

                Wer ohne beziehungen versucht und einfach nur Tabellen erstellt wird am ende nie auf einen Grünen Zweig kommen bwz viele Redunazen drin haben mit vielen umständlichen abfragen das das ganze dann so langsam macht das es ewig dauert.

                Kleiner Tip.
                Zuerst überlegen was du machen willst dann die Beziehung festlegen die dafür benötig werden und dann erst die Tabellen erstellen.

                Mfg Splasch

                Kommentar


                • #9
                  Probiers mal mit ChildIDs, und Rekursion sowie eventuellen Temporären Tabellen oder Views.

                  Wennman das beliebig und performant gestalten will ists aufjedenfall erstmal eine nicht ganz so einfache Sache.

                  CatID, Kategoriename, ChildID

                  ChildID = 0 => Rootelement

                  wenn du nicht auf performance achtest kannst du in php mehrere abfragen hintereinander machen (bis ChildID bei 0 ankommt (also von hinten nach vorn)

                  Wenn du suchst welche Unterkategorien in einer Kategorie sind wirds schon wieder schwerer...

                  Ich hab das damals mit einer temporären Tabelle gesucht die folgendes beinhaltet:

                  StrID, CatIDs, CatNames

                  1, .1.2.3., .Kategorie1.Kategorie2.Kategorie3.

                  dann kannst du mit
                  CatIDs LIKE '%.' gesuchte Kategorie '.%'

                  die Kunst ist dann aber ein Script zu machen was dir diese Temporären Tabellen effizient aktualisiert.

                  Wenn jemand eine bessere Lösung für sowas hat währe ich auchmal an Ideen interessiert.

                  Kommentar

                  Lädt...
                  X