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

  • Webbaer
    hat ein Thema erstellt Problem beim erstellen mehrerer Objekte.

    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 />';
        
      }
     
    }

    ?>

  • tr0y
    antwortet
    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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • Webbaer
    antwortet
    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

    Einen Kommentar schreiben:


  • tkausl
    antwortet
    Schonmal was von Arrays gehört?

    PHP-Code:
    $dishes = array();
    $dishes[] = new Dish(...); 
    E: Huh, bin ich langsam...

    Einen Kommentar schreiben:


  • monolith
    antwortet
    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

    Einen Kommentar schreiben:

Lädt...
X