Zweidimensionales array aus Datenbank

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

  • Zweidimensionales array aus Datenbank

    Hallo,
    Ich habe Probleme einzelne Daten aus einem zweidimensionalen Array zu holen.
    Ich habe eine Datenbankabfrage gemacht mit einer Funktion. Wenn ich das ergebnis als Array aufliste sieht es schon mal ganz gut aus:
    PHP Code:
    $isfdb -> isfRsEinheiten();
    echo 
    "<pre>";
            
    print_r($isfdb->rseinheiten);
    echo 
    "</pre>"
    Ergebnis dieser Abfrage:
    Code:
    Array
    (
        [0] => Array
            (
                [id] => 1
                [name] => U.S.S.Nimitz NCC-42345 B
                [name_kurz] => U.S.S. Nimitz
                [aktiv] => 1
                [schiffsklasse] => Prometheus
                [beschreibung] => 
                [rs_tag] => Montags 20:30h
                [template] => 1
                [ordnername] => nimitz
            )
    
        [1] => Array
            (
                [id] => 2
                [name] => U.S.S.Independence NCC-71409
                [name_kurz] => U.S.S. Independence
                [aktiv] => 1
                [schiffsklasse] => Sovereign
                [beschreibung] => 
                [rs_tag] => Donnerstags 20:30h
                [template] => 1
                [ordnername] => independence
            )
    
        [2] => Array
            (
                [id] => 3
                [name] => Starbase 375 und U.S.S.Starrunner NCC-56778
                [name_kurz] => Starbase 375 & U.S.S. Starrunner
                [aktiv] => 1
                [schiffsklasse] => Defiant
                [beschreibung] => 
                [rs_tag] => Sonntags 20:00h
                [template] => 1
                [ordnername] => starbase_und_starrunner
            )
    
        [3] => Array
            (
                [id] => 4
                [name] => STF
                [name_kurz] => Special Task Force
                [aktiv] => 1
                [schiffsklasse] => 
                [beschreibung] => 
                [rs_tag] => 
                [template] => 2
                [ordnername] => stf
            )
    )
    Ich habe mich jetzt todversucht mit foreach, denn ich möchte eine Liste aller "name_kurz" haben und das dann auch noch sortiert nach id:
    U.S.S. Nimitz
    U.S.S. Independence
    Starbase 375 & U.S.S. Starrunner
    Special Task Force

    Mit festen Zahlenwerten also array 1,2,3 auslesen kann ich nicht machen, da es ja sein kann das irgendwann nochmal ein Datensatz dazu kommt und der soll ja die Liste weiterführen wenn neue Daten vorhanden sind.
    Kann mir da jemand helfen?
    Last edited by GregoriMarow; 19-01-2013, 12:55.

  • #2
    Erst mit usort() nach wunsch sortieren, dann mit array_map, oder array_walk, das Array aufs gewünschte reduzieren.
    Last edited by combie; 19-01-2013, 13:13.
    Wir werden alle sterben

    Comment


    • #3
      Verliere ich bei unsort nicht die Feldbezeichnungen?
      [name] => U.S.S.Independence NCC-71409
      zu
      [0] => U.S.S.Independence NCC-71409

      Comment


      • #4
        Warum solltest du?

        Ich habe eine Datenbankabfrage gemacht mit einer Funktion.
        Und warum lässt du dir das nicht sofort richtig von der DB geben?
        Wir werden alle sterben

        Comment


        • #5
          Weil das eine DB Funktion innerhalb einer Klasse ist die ich immer wieder verwenden möchte. Dann müsste ich für jede abfrageart doch ne eigene Funktion schreiben. So habe ich eine Funktion für die rseinheiten. Oder hast du evtl ne alternative idee?

          Ich wollte jetzt auch nicht ne sql funktion mit variablen zupflastern und die dann beim Funktionsaufruf zu übergeben also sowas z.B:
          PHP Code:
          this->sql="SELECT ".$select." FROM ".$table." WHERE ".$where."='".$wherecase."'"

          Ich bin für jede Inspiration dankbar
          Last edited by GregoriMarow; 19-01-2013, 13:31.

          Comment


          • #6
            Ahhh ich bin so verblendet.
            Danke combie, du hast mich auf ne Idee gebracht:

            Funktion:
            PHP Code:
            public function isfRsEinheiten($where){
                        
            // Auslesen der rseinheiten
                        
            $this->sql="SELECT * FROM rseinheiten ".$where."";
                        
            $this->resultmysql_query($this->sql) OR die(mysql_error());
                        
            $this->rseinheiten $this->result;
                        RETURN 
            $this->rseinheiten;
                    } 
            Verwendung in der php Datei
            PHP Code:
            // $isfdb->rseinheiten
                
            $isfdb -> isfRsEinheiten($where="WHERE aktiv='1'");
                
                while (
            $row mysql_fetch_assoc($isfdb->rseinheiten)) {
                            echo 
            $row['name_kurz'];
                            echo 
            "<br />"
            Somit kann ichg die Funktion immer wieder verwenden, sogar wenn sich die Where Bedingung ändert.
            Last edited by GregoriMarow; 19-01-2013, 14:27.

            Comment

            Working...
            X