2016-12-05 3 views
0

Hallo, ich habe eine Funktion gemacht, in der ich Ergebnisse von db erhalte und sie in einem Array ablege und ein Array an die Funktion zurückgebe. Im Folgenden ist die Funktion:Versuch, kein Objekt zu erhalten Mit der OOP-Methode

public function products() { 

     shopping::connection(); 
     $get = mysqli_query($this -> connection, 'Select * from products limit 5'); 
     $result[] = array(); 
     while($results = mysqli_fetch_object($get)) { 
      $result[] = $results; 
     } 
     return $result; 

    } 

so jetzt diese Funktion eine andere Datei mit dem Namen i functions.php diese Datei in eine andere Datei mit dem Namen, wo ich alle Daten und die Anzeige auf dieser Seite ziehen wollen, so enthalten ich die Datei und gespeichert die Funktion in der Variable. Im Folgenden, wie ich tat

<?php require_once('codec/functions.php'); ?> 
<?php $products = $object -> products(); ?> 

Jetzt, wenn ich print_r ($ Produkte) zu tun gibt mir eine Reihe von Daten, aber wenn ich versuche, die Daten mit dieser Funktion

<?php echo $product -> price; ?> 

Es gibt mir einen Fehler abrufen von

Notice: Trying to get property of non-object in C:\xampp\htdocs\Shopping\index.php on line 15 

Ich habe auf Google gesucht, aber nicht Ergebnis gefunden, das ich will. Bitte sag mir, was ich falsch mache. Danke

+0

'print_r ($ product)'. Und dieses '$ result [] = array();' ist nutzlos. Ihr erstes Array-Element ist also ein leeres Array, das kein Objekt ist. –

+0

also wie soll ich das machen ja erstes Element ist emppty –

+0

'$ result = array();' –

Antwort

1

Sie versuchen, auf eine Eigenschaft eines Nicht-Objekts zuzugreifen. Wie der Fehler es dir sagt.

Es gibt einen großen Unterschied zwischen Objekten und Arrays.

Sie haben eine Reihe von Produkten, die auch ein Objekt sind.

Wenn Sie auf die Daten von der Datenbank zugreifen möchten, müssen Sie die Ergebnisse in eine Schleife bringen.

foreach ($products as $product) { // where $product is a single row from your query 
    echo $product->price; // here you take the price of a single product. 
} 

Sie haben auch ein Problem mit Ihrem $result Variable in der Funktion Produkte initialisiert. Es wird immer ein leeres Array auf dem ersten Index haben. Versuchen Sie $result = array();, damit Sie keine Probleme haben werden.

Verwandte Themen