php sql kodu, foreach uyarı

2 Cevap php

Ben bymyself yazılı değil aşağıdaki kodu var, ama onunla yanlış bir şey nokta olabilir merak ediyorum?

$query =    "SELECT * from #__properties_type where published = 1 AND parent =        ".$Category_id." OR parent = 0";

$db->setQuery( $query );                

$types = $db->loadObjectList();

$nP = count($types);

$mitems[0]->id=0;

$mitems[0]->name='Type';

    foreach ( $types as $item ) {

        $mitems[] = $item;

    }

/ Etc / etc / vb Geçersiz argüman foreach için verilen (): Bu iyi çalışıyor gibi görünüyor ama bazen rastgele Uyarı göreceksiniz

Herhangi bir fikir?

2 Cevap

Sizin loadObjectList function, SQL sorgusu başarısız olduğunda belki, bazen olmayan bir dizi dönmek gibi görünüyor.

Hızlı düzeltme:

if (is_array($types))
foreach ( $types as $item ) {

        $mitems[] = $item;

    }

ancak işlevi başarısız neden daha derin neden aramak, ve eğer varsa buna göre hatayı işlemesi gerekir.

$mitems[0] kod parçacığını önce önceden sürece, PHP $mitems[0], dolayısıyla $mitems[0]->id bir uyarı atacağım bir nesne içeren hakkında bilmek hiçbir yolu yoktur.

Bunu çözmek için:

$mitems[0] = new YourObject();
$mitems[0]->id=0;
$mitems[0]->name='Type';