Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem beim erstellen mehrerer Objekte

Einklappen

Neue Werbung 2019

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

  • Problem beim erstellen mehrerer Objekte

    Hallo ich hoffe das mir hier jemand weiterhelfen kann.

    Ich habe dieses Beiden PHP Dokumente erstellt die Erstellung eines einzelnen Objekts funktioniert ohne Probleme leider habe ich es nicht hinbekommen mehrere Objekte zu erstellen da ich ja vor dem Erstellen nicht weiß wie viele Objekte es am Ende werden. Aus der Datenbank werdne mehrere Objekte ausgelesen die er natürlich immer weider brav überschreibt steht ja auch so da . Ich weiß nur nicht Wie ich für jedes Objekt nen eigen variable erstellen kann so das ich danach noch auf die Objekte zugreifen kann. Mein Ansatz war der Counter aber konnte da leider keine Lösung finden. Wäre echt super wenn mir jemand weiter helfen könnte vielen Dank schon mal

    PHP-Code:
    <?php

        
    include("Dish.php"); 
        
        

        
    // Aufbau der Datenbankverbindung
        
    require_once("../include/db-connection.inc.php");

        
    // SQL Abfrage
        
    $abfrage "SELECT * FROM dishes"
        
        
    // Durchführung der SQL Abfrage
        
    $ergebnis mysql_query($abfrage);
        
        
    // Erstellung eines Counters
        
    $dish_counter 0;
        
        
        
    // Erstellung von Objekten
        
    while($obj mysql_fetch_object($ergebnis)){
        
        
    $dish_counter++;
        
        
    $dishID         $obj->dishID;
        
    $name            $obj->name;
        
    $description     $obj->description;
        
    $price             $obj->price;
        
    $ingredients     $obj->ingredients;
        
    $category         $obj->category;
        
    $nutrition         $obj->nutrition;
        
    $imagePath         $obj->imagePath;    
        
        
    $dish = new Dish ($dishID$name$description$price$ingredients$category$nutrition$imagePath);
        }
        
            
        
        
    $dish->show_attributes();
        


    ?>

    PHP-Code:
    <?php 
    class Dish {
     
      
    // Attribute 
      
    protected $dishID;
      protected 
    $name;
      protected 
    $description;
      protected 
    $price;
      protected 
    $ingredients;
      protected 
    $category;
      protected 
    $nutrition;
      protected 
    $imagePath
      
     
     
      
    // Konstruktor
      
    public function __construct$dishID$name$description$price$ingredients$category$nutrition$imagePath  ) {
        
    $this->dishID $dishID;
        
    $this->name $name;
        
    $this->description $description;
        
    $this->price $price;
        
    $this->ingredients $ingredients;
        
    $this->category $category;
        
    $this->nutrition $nutrition;
        
    $this->imagePath $imagePath;
        
        
        
      }
      
      
     
      
    // Methods of class
      
    public function show_attributes() {
        echo 
    'DishID: '             $this->dishID '<br />';
        echo 
    'Name: '             $this->name '<br />';
        echo 
    'Beschreibung: '     $this->description '<br />';
        echo 
    'Preis: '             $this->price '<br />';
        echo 
    'Zutaten: '         $this->ingredients '<br />';
        echo 
    'Kategory: '         $this->category '<br />';
        echo 
    'Ernaehrungsart: '     $this->nutrition '<br />';
        echo 
    'Bildpfad: '         $this->imagePath '<br />';
        
      }
     
    }

    ?>


  • #2
    Naheliegend ist die Nutzung eines Arrays:
    PHP-Code:
        $dishes = array(); // Array erstellen
        
    while($obj mysql_fetch_object($ergebnis)){ 
            
    // ...

            // neues Dish erstellen und zum Array hinzufügen
            
    $dishes[] = new Dish ($dishID$name$description$price$ingredients$category$nutrition$imagePath); 
        } 
    Falls du nicht weißt was ein Array ist oder wie man damit umgeht, schau in die offizielle Dokumentation: http://www.php.net/manual/de/function.array.php

    Kommentar


    • #3
      Schonmal was von Arrays gehört?

      PHP-Code:
      $dishes = array();
      $dishes[] = new Dish(...); 
      E: Huh, bin ich langsam...
      Zitat von nikosch
      Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

      Kommentar


      • #4
        Zitat von monolith Beitrag anzeigen
        Naheliegend ist die Nutzung eines Arrays:
        PHP-Code:
        $dishes = array();
            while(
        $obj mysql_fetch_object($ergebnis)){ 
                
        // ...
                
        $dishes[] = new Dish ($dishID$name$description$price$ingredients$category$nutrition$imagePath); 
            } 

        Okay Danke hatte wohl gerade ein Brett vorm Kopf sorry sollte wohl mal ne Pause machen

        Kommentar


        • #5
          Das und du solltest dir merken: Hast du von irgendwas mehr als eines, dann speicherst du diese Dinge (Objekte, aber auch primitive Datentypen) in der Regel in einem Array. Arrays in PHP sind sehr mächtig, mächtiger als z. B. in C/C++, denn sie sind eigentlich nicht nur reine Arrays sondern können noch viel mehr. Deshalb helfen sie in vielen Lebenslagen weiter.

          Kommentar


          • #6
            Mach dir das nicht so umständlich.

            PHP-Code:
            <?php

            class foo
            {
                private 
            $firstName;
                private 
            $secondName;

                public function 
            greet()
                {
                    echo 
            'Hello, '.$this->firstName.' '.$this->lastName;
                }
            }


            $db = new MySQLI('localhost''root''''test');

            $result $db->query("SELECT 'John' AS `firstName`, 'Doe' AS `lastName`");

            $obj $result->fetch_object('foo');

            $obj->greet();
            Code:
            Hello, John Doe
            [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

            Kommentar

            Lädt...
            X