Zweidimensionales array aus Datenbank

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

  • 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?
    Zuletzt geändert von GregoriMarow; 19.01.2013, 13:55.

  • #2
    Erst mit usort() nach wunsch sortieren, dann mit array_map, oder array_walk, das Array aufs gewünschte reduzieren.
    Zuletzt geändert von combie; 19.01.2013, 14:13.
    Wir werden alle sterben

    Kommentar


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

      Kommentar


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

        Kommentar


        • #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
          Zuletzt geändert von GregoriMarow; 19.01.2013, 14:31.

          Kommentar


          • #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.
            Zuletzt geändert von GregoriMarow; 19.01.2013, 15:27.

            Kommentar

            Lädt...
            X