Autor Zpráva
Slark
Profil *
Dobrý den,

stěhuji eshop na jiný hosting a vyhazuje mi to chybu Fatal error: Call to a member function StrukturniNadpis() on a non-object in /data/web/virtuals/47506/virtual/www/shop/inc.zbozi.php on line 9

Takto vypadá funkce na StrukturniNadpis

    function StrukturniNadpis() {
        $odklad = array(); // zalozi odkladaci pole
        $parentid = $this->info['sekce'];
        while($parentid != 0) {
            $sql = "SELECT parentid, name, haschildren FROM $this->dbname.$this->dbsekcetable WHERE id=".$parentid; //najde rodicovskou sekci
            if(!$res = mysql_query($sql)) {$this->NastavError(1, mysql_error());return 0;} // kdyz se posere dotaz
            $row = mysql_fetch_array($res);
            $odklad[] = array($parentid, $row['name'], $row['haschildren']);
            $parentid = $row['parentid'];
        }
        /*for($x=sizeof($odklad); $x>0; $x--) { // vypise strukturni nadpis sekce
            echo "<a href=\"index.php?what=zbozi&amp;sekce=".$odklad[$x-1][0]."&type=".$odklad[$x-1][2]."\">".$odklad[$x-1][1]."</a> -&gt; ";
        }*/
        echo "".$this->info['nazev'].""; //doplni jmeno zbozi
        return 1;
    }

a v inc.zbozi je volána:

if(!$zbozi->StrukturniNadpis()) {echo $zbozi->errortxt; die();}

na minulém hostingu vše fungovalo v pořádku.

Děkuji za pomoc.
Joker
Profil
Slark:
V $zbozi není ten objekt, který očekáváte.
Slark
Profil *
$zbozi vytvářím tady

$zbozi = new cZbozi($sekce, $type, $lim, $db_name, $tbl_sekce, $tbl_zbozi, $tbl_konfig);
    if($zbozi->initerror=true) $error = $zbozi->errortxt;
    if($koupit=="true" && $ks>=1 && ($ks-floor($ks))==0) {
        $detail = new cDetail($id, $db_name, $tbl_zbozi, $tbl_zbozi_det, $tbl_sekce);
        if($detail->initerror=true) $error = $detail->errortxt;
        $uzivatel->KosPridatZbozi($detail->info, $ks);
        header("Refresh: 0; URL=index.php?what=potvrzeni");exit;
    }

Jak to mám ošetřit, aby mi to nepsalo fatal error?
Děkuji.
Joker
Profil
Slark:
Kód v [#3] sice obsahuje hned několik chyb a nebude fungovat správně, ale příčinou chybové hlášky z [#1] asi není, protože jinak by to podle mě tou chybou skončilo už na 2. řádku kódu v [#3].

Ale když vidím, jak kód v [#3] vesele používá přiřazení místo porovnání (řádek 2 a 5), skoro bych tipoval, že tam někde bude $zbozi = něco místo $zbozi == něco.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: