Kategorien erstellen (Expode) ?

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

  • 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.

    Comment


    • #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 ??
      Last edited by SusiSorglos; 10-06-2007, 22:56.
      PHP 8.0, MariaDB 10.5 auf U20.04

      Comment


      • #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

        Comment


        • #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

          Last edited by wahsaga; 11-06-2007, 07:30.
          PHP 8.0, MariaDB 10.5 auf U20.04

          Comment


          • #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.

            Comment


            • #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

              Comment


              • #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

                Comment


                • #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.

                  Comment

                  Working...
                  X