[PHP] Fatal error: Call to a member function on a non-object

Pagina: 1
Acties:

Onderwerpen


  • Cool_Willy
  • Registratie: November 2001
  • Laatst online: 17-11-2012
Ik heb al een tijdje een probleempje met een foutmelding in mijn code. Zoeken heb ik gedaan, maar heeft geen oplossing naar voren gebracht :|

Eerst maar (een deel van) de code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function lookup($page)
{
    if($page)
    {
    $query = 'SELECT title FROM '.suPAGES.' WHERE id = '.$page.'';  // maak sql-query aan
    echo $query;
    $gettitle = $suSQL->queryValue($query); // vraag inhoud (title) op
    $val = $suSQL->query($query);   // vraag integerwaarde op
    if($val != 0)       // controleer of $page wel bestaat
        {
        $page = suBASE.suPathByID(intval($page));   // zet pad in $page
        $page = '<a href="'.$page.'">'.$gettitle.'</a><br>';    // maak link met $gettitle als naam
        echo $page; // zet link op scherm
        }
    }
}
$list = lookup($id1).lookup($id2).lookup($id3).lookup($id4).lookup($id5);
echo $list;


Het gaat dus fout op regel 7, met de foutmelding: Fatal error: Call to a member function on a non-object in c:\*knip*\block.html on line 18. (Line 18 is nu dus regel 7.)
Het rare (voor mij iig ;)) is dat deze code wel werkt als ik het niet in een functie zet... Zo dus:
code:
1
2
3
4
5
6
7
8
9
10
11
12
if($id1) // bekijk of voor $id1 een waarde is ingevuld
{
    $query = 'SELECT title FROM '.suPAGES.' WHERE id = '.$id1.'';   // maak sql-query aan
    $gettitle = $suSQL->queryValue($query); // vraag inhoud (title) op
    $val = $suSQL->query($query);   // vraag integerwaarde op
    if($val != 0)       // controleer of $id1 wel bestaat
    {
        $id1 = suBASE.suPathByID(intval($id1));   // zet pad in $id1
        $id1 = '<a href="'.$id1.'">'.$gettitle.'</a><br>';  // maak er een link van met $gettitle als naam
        echo $id1;  // zet link op scherm
    }
}


Het is misschien wel handig om te weten dat deze code bedoeld is om te werken in SiteSupra (een CMS), $id1, $id2 enz. staan in een andere file gedefinieerd.

Wie heeft er een idee waar de fout zit?

  • Kippenijzer
  • Registratie: Juni 2001
  • Laatst online: 03-11 13:22

Kippenijzer

McFallafel, nu met paardevlees

zet aan het begin van de functie eens een global $suSQL, want ik ben bang dat het gewoon een scope probleem is, daarnaast zet ik mijn vraagteken bij de ".suPAGES.", omdat ik daar een $ verwacht, maar ook daar zijn weer voldoende uitzonderingen op ;)

  • Cool_Willy
  • Registratie: November 2001
  • Laatst online: 17-11-2012
Dat suPAGES klopt, dat zit ingebakken in SiteSupra.
Je tip ga ik even proberen :)

[edit]
Dat een probleem soms zo simpel kan zijn... Je tip werkt dus, bedankt :D
( * Cool_Willy gaat zich gelijk maar weer ff verder verdiepen in php ;))

[ Voor 48% gewijzigd door Cool_Willy op 29-10-2003 14:00 ]


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 03-11 20:31

chem

Reist de wereld rond

Cool_Willy schreef op 29 October 2003 @ 13:57:
Dat suPAGES klopt, dat zit ingebakken in SiteSupra.
Je tip ga ik even proberen :)

[edit]
Dat een probleem soms zo simpel kan zijn... Je tip werkt dus, bedankt :D
( * Cool_Willy gaat zich gelijk maar weer ff verder verdiepen in php ;))
ipv een GLOBAL te gebruiken, kan je beter het object by-reference meegeven:
PHP:
1
function lookup(&$suSQL, $page) { ... }

Klaar voor een nieuwe uitdaging.