[PHP] Array richtig auswerten

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Spo0n22, 12. Juli 2012 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 12. Juli 2012
    Array richtig auswerten

    Guten Tag Leute,

    eine kurzes anliegen hätte ich an euch.

    Ich habe eine Datenbank mit verschiedenen Kategorien und Unterkategorien.

    Mit einer Abfrage konnte ich nun folgenden Array erstellen:

    PHP:
    Array
    (
        [
    67 ] => Array
            (
                [
    name ] =>  Damen
                
    [ subcat ] => Array
                    (
                        [
    69 ] => Array
                            (
                                [
    name ] =>  Pullover  Strickjacken
                                
    [ subcat ] => Array
                                    (
                                        [
    70 ] => Array
                                            (
                                                [
    name ] =>  Fleecepullover
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                    )

                            )

                        [
    72 ] => Array
                            (
                                [
    name ] =>  Hosen
                                
    [ subcat ] => Array
                                    (
                                        [
    127 ] => Array
                                            (
                                                [
    name ] =>  Leggings
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    134 ] => Array
                                            (
                                                [
    name ] =>  Shorts
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                    )

                            )

                        [
    73 ] => Array
                            (
                                [
    name ] =>  Jeans
                                
    [ subcat ] => Array
                                    (
                                    )

                            )

                        [
    129 ] => Array
                            (
                                [
    name ] =>  Shirts  Tops
                                
    [ subcat ] => Array
                                    (
                                        [
    74 ] => Array
                                            (
                                                [
    name ] =>  Langarmshirt
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    128 ] => Array
                                            (
                                                [
    name ] =>  Tops
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                    )

                            )

                        [
    131 ] => Array
                            (
                                [
    name ] =>  Unterwäsche
                                
    [ subcat ] => Array
                                    (
                                        [
    132 ] => Array
                                            (
                                                [
    name ] =>  BHs
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    133 ] => Array
                                            (
                                                [
    name ] =>  Strings
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                    )

                            )

                        [
    135 ] => Array
                            (
                                [
    name ] =>  Röcke
                                
    [ subcat ] => Array
                                    (
                                        [
    136 ] => Array
                                            (
                                                [
    name ] =>  Miniröcke
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                    )

                            )

                        [
    137 ] => Array
                            (
                                [
    name ] =>  Accessoires
                                
    [ subcat ] => Array
                                    (
                                        [
    138 ] => Array
                                            (
                                                [
    name ] =>  Schal / Tücher
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    144 ] => Array
                                            (
                                                [
    name ] =>  Taschen
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    145 ] => Array
                                            (
                                                [
    name ] =>  Gürtel
                                                
    [ subcat ] => Array
                                                    (
                                                        [
    148 ] => Array
                                                            (
                                                                [
    name ] =>  Test
                                                                
    [ subcat ] => Array
                                                                    (
                                                                    )

                                                            )

                                                    )

                                            )

                                    )

                            )

                        [
    139 ] => Array
                            (
                                [
    name ] =>  Sakkos  Blazer
                                
    [ subcat ] => Array
                                    (
                                    )

                            )

                        [
    142 ] => Array
                            (
                                [
    name ] =>  Kleider
                                
    [ subcat ] => Array
                                    (
                                    )

                            )

                        [
    147 ] => Array
                            (
                                [
    name ] =>  Jacken
                                
    [ subcat ] => Array
                                    (
                                    )

                            )

                    )

            )

        [
    79 ] => Array
            (
                [
    name ] =>  Herren
                
    [ subcat ] => Array
                    (
                        [
    122 ] => Array
                            (
                                [
    name ] =>  Anzüge
                                
    [ subcat ] => Array
                                    (
                                        [
    123 ] => Array
                                            (
                                                [
    name ] =>  Anzugsakkos
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    124 ] => Array
                                            (
                                                [
    name ] =>  Anzughosen
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                    )

                            )

                        [
    83 ] => Array
                            (
                                [
    name ] =>  Accessoires
                                
    [ subcat ] => Array
                                    (
                                        [
    87 ] => Array
                                            (
                                                [
    name ] =>  Schal / Tücher
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    88 ] => Array
                                            (
                                                [
    name ] =>  Krawatten
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    85 ] => Array
                                            (
                                                [
    name ] =>  Armbänder
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    86 ] => Array
                                            (
                                                [
    name ] =>  Gürtel
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    84 ] => Array
                                            (
                                                [
    name ] =>  Halsketten
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    89 ] => Array
                                            (
                                                [
    name ] =>  Mützen
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    90 ] => Array
                                            (
                                                [
    name ] =>  Schlüsseltasche
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    91 ] => Array
                                            (
                                                [
    name ] =>  Handschuhe
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    92 ] => Array
                                            (
                                                [
    name ] =>  Taschen
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    93 ] => Array
                                            (
                                                [
    name ] =>  Accessoires
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    130 ] => Array
                                            (
                                                [
    name ] =>  Sonnenbrillen
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                    )

                            )

                        [
    80 ] => Array
                            (
                                [
    name ] =>  Wäsche
                                
    [ subcat ] => Array
                                    (
                                        [
    82 ] => Array
                                            (
                                                [
    name ] =>  Boxershorts
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    81 ] => Array
                                            (
                                                [
    name ] =>  Socken
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                    )

                            )

                        [
    94 ] => Array
                            (
                                [
    name ] =>  T - Shirts
                                
    [ subcat ] => Array
                                    (
                                        [
    96 ] => Array
                                            (
                                                [
    name ] =>  Poloshirts
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    97 ] => Array
                                            (
                                                [
    name ] =>  Tank Tops
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    98 ] => Array
                                            (
                                                [
    name ] =>  Langarmshirts
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    95 ] => Array
                                            (
                                                [
    name ] =>  T - Shirts
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                    )

                            )

                        [
    99 ] => Array
                            (
                                [
    name ] =>  Hosen  Jeans
                                
    [ subcat ] => Array
                                    (
                                        [
    100 ] => Array
                                            (
                                                [
    name ] =>  Jeans
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    101 ] => Array
                                            (
                                                [
    name ] =>  Shorts
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    102 ] => Array
                                            (
                                                [
    name ] =>  Hosen
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                    )

                            )

                        [
    103 ] => Array
                            (
                                [
    name ] =>  Hemden
                                
    [ subcat ] => Array
                                    (
                                        [
    104 ] => Array
                                            (
                                                [
    name ] =>  Kurzarm
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    105 ] => Array
                                            (
                                                [
    name ] =>  Langarm
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                    )

                            )

                        [
    106 ] => Array
                            (
                                [
    name ] =>  Jacken  Mäntel
                                
    [ subcat ] => Array
                                    (
                                        [
    107 ] => Array
                                            (
                                                [
    name ] =>  Sakkos  Blazer
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    108 ] => Array
                                            (
                                                [
    name ] =>  Jacken
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    109 ] => Array
                                            (
                                                [
    name ] =>  Mäntel
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    110 ] => Array
                                            (
                                                [
    name ] =>  Lederjacken
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    111 ] => Array
                                            (
                                                [
    name ] =>  Westen
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                    )

                            )

                        [
    112 ] => Array
                            (
                                [
    name ] =>  Pullover
                                
    [ subcat ] => Array
                                    (
                                        [
    113 ] => Array
                                            (
                                                [
    name ] =>  Hoodies
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    114 ] => Array
                                            (
                                                [
    name ] =>  Pullover
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    115 ] => Array
                                            (
                                                [
    name ] =>  Zip - Hoodies
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                    )

                            )

                        [
    116 ] => Array
                            (
                                [
    name ] =>  Parfum  Pflege
                                
    [ subcat ] => Array
                                    (
                                        [
    117 ] => Array
                                            (
                                                [
    name ] =>  Deodorants
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                    )

                            )

                        [
    118 ] => Array
                            (
                                [
    name ] =>  Schuhe
                                
    [ subcat ] => Array
                                    (
                                        [
    119 ] => Array
                                            (
                                                [
    name ] =>  Sneaker
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    120 ] => Array
                                            (
                                                [
    name ] =>  Boots / Stiefel
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                        [
    121 ] => Array
                                            (
                                                [
    name ] =>  Sandalen
                                                
    [ subcat ] => Array
                                                    (
                                                    )

                                            )

                                    )

                            )

                    )

            )

        [
    146 ] => Array
            (
                [
    name ] =>  Nicht zugeordnet Artikel
                
    [ subcat ] => Array
                    (
                    )

            )

    )
    Nun möchte ich folgendes ausgeben:

    PHP:
    Damen  ->  Accessoires  ->  Gürtel  ->  Test
    Dies soll nur mit der Hilfe von der ID 148 (Kategorie = Test) geschehen.

    Oder besteht eine andere Möglichkeit mit der letzten ID, in dem Fall 148, die Oberkategorien herrauszufinden?
     
  2. 12. Juli 2012
    Zuletzt bearbeitet: 12. Juli 2012
    AW: Array richtig auswerten

    Du speicherst die Kategorien mit einer Eltern ID in der Datenbank, oder?

    Man könnte es so machen
    PHP:
    $parents  = array();
    $id  148 //start id
    while ( ( $parent  hasParents ( $id )) !==  false ) {
      
    $parents [] =  $parent [ 'name' ];
      
    $id  $parent [ 'id' ];
    }
    hasParents gibt einen Array mit ID und Name zurück, falls die Kategorie eine Subkategorie ist, ansonsten false
     
    1 Person gefällt das.
  3. 12. Juli 2012
    AW: Array richtig auswerten

    Wie sollte die hasParents aufgebaut sein?

    Die Datenbank ist im Moment so aufgebaut:
    HTML:
    cid | categorie | parent_id
    67 | Damen | 0
    137 | Accessoires | 67
    145 | Gürtel | 137
    148 | Test | 145
    
    
    
     
  4. 13. Juli 2012
    AW: Array richtig auswerten

    SELECT und JOIN sind deine Freunde. Mal in ganz einfachem Pseudo-Code:
    Code:
    pid = RUFE parent_id VON cid AB
    ÜBERPRÜFE, OB pid IN DB EXISTIERT
    EXISTIERT:
     data = cid, categorie UND parent_id VON pid
     GIB data ZURÜCK
    EXISTIERT NICHT:
     GIB FALSE ZURÜCK
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.