Frage von Minding, 5

PHP MySQLi: Notice: Trying to get property of non-object

Hallo Community,

ich will eine kleine MySQLi-Suche machen, jedoch kommt der im Titel genannte Fehler:

Notice: Trying to get property of non-object in C:\xampp\htdocs\Products\search.php on line 14

Zeile 14: if($companys->num_rows != 0) {

Hier der Code:

$search = $_GET['search'];
$filter = $_GET['filter'];

if(empty($search)) {
    header('Location:index.php');
} else {
    $table = '';
    if($filter == 'all' || $filter == 'companys') {
        $companys = $mysqli->query("SELECT * FROM companys WHERE name LIKE '%$search%' OR ".$language['getLanguageShortcut']."_description LIKE '%$search%' OR Tags LIKE '%$search%'")->fetch_array(MYSQLI_ASSOC)or die(mysqli_error());
        if($companys && $companys !== false) {
            if($companys->num_rows != 0) {
                while($company = $companys->fetch_array()) {
                    //show hits
                }
            }
        }
    }
    //Noch ein bissel Code
}

Fragen: - Warum kommt der Fehler, obwohl ich alle "falschen" Rückgabewerte abfage? - Wie kann ich das Problem lösen?

Danke, schon mal im Voraus!

-Minding

Antwort
von Minding, 4

Hi,

nach 2 Stunden überlegen schreibe ich diese Frage und ca. 20 sek. später entdecke ich den Fehler:

ich habe schon am Anfang ->fetch_array(), verwendet wodurch ->num_rows keinen Sinn mehr ergibt, also kurz:

Statt:

$companys = $mysqli->query("SELECT * FROM companys WHERE name LIKE '%$search%' OR ".$language['getLanguageShortcut']."_description LIKE '%$search%' OR Tags LIKE '%$search%'")->fetch_array(MYSQLI_ASSOC)or die(mysqli_error());

Besser:

$companys = $mysqli->query("SELECT * FROM companys WHERE name LIKE '%$search%' OR ".$language['getLanguageShortcut']."_description LIKE '%$search%' OR Tags LIKE '%$search%'")or die(mysqli_error());

Problem gelöst!

-Minding

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten