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

Pagina: 1
Acties:
  • 190 views

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hey allemaal..

Waarschijnlijk krijgen jullie deze vragen zo goed als overal. Wel ik zit tamelijk nogal op het beginnersniveau van PHP scripting en 'k heb een fout die ik er absoluut niet uit krijg. 'k Heb al mijn DAL,CRUD en BL's herschreven voor deze fout weg te werken.. Maar ik krijg steeds de melding

code:
1
Fatal error: Call to a member function getCommentaar() on a non-object in /srv/www/html/projecten/project31/Zwemclub/classes/CRUDFoto.php  on line 40


Nu dit is de code die ik oproep;
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        public function updateFoto ($foto)
    {
                
                $id = $foto->getId();
                $foto = toNull(escape($foto->getFoto()),true);
                $commentaar = toNull(escape($foto-getCommentaar()), true);
                $wedstrijdId = $foto->getWedstrijdId();
                $goedgekeurd = $foto->getGoedgekeurd();

        $sql = "UPDATE foto
            SET foto = $foto,
            commentaar = $commentaar,
            wedstrijdId = $wedstrijdId,
            goedgekeurd = $goedgekeurd
            WHERE id = $id";

        if (!mysql_query($sql, $this->connectie)) {
            die('Error: ' . mysql_error());
        }
    }

Als ik echter een echo uitvoer op de 2 eerste.. de id & de foto dan toont hij wel degelijk die 2 waarden van het object dat ik meegeef getiteld "$foto" maar vanaf regel 3 doet hij het niet meer..

Dit is de code die ik geef om het object waardes te geven;

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
include_once("include/functions.php");
include_once("include/config.php");
include_once("classes/BLFoto.php");

$blFoto = new BLFoto();
$fotos = $blFoto->getNietGoedgekeurdeFotos();

foreach ($fotos as $foto1) {
    if (isset($_POST["foto" . $foto1->getId()])) {
        $fotoid = $foto1->getId();
        $fotonaam = $foto1->getFoto();
        $commentaar = $foto1->getCommentaar();
        $wedstrijdId = $foto1->getWedstrijdId();
        $goedgekeurd = 1;

        $foto = new Foto($fotoid, $fotonaam, $commentaar, $wedstrijdId, $goedgekeurd);
        $blFoto->updateFoto($foto);
    }

Acties:
  • 0 Henk 'm!

Verwijderd

Een fout die ik gelijk al zie:
$foto->getCommentaar()
De > ontbreekt

Acties:
  • 0 Henk 'm!

  • Rmg
  • Registratie: November 2003
  • Laatst online: 22:49

Rmg

$commentaar = toNull(escape($foto-getCommentaar()), true); <- vergeten een > te doen

Acties:
  • 0 Henk 'm!

  • _Sunnyboy_
  • Registratie: Januari 2003
  • Laatst online: 22:39

_Sunnyboy_

Mooooooooooooooooo!

Op regel 2 overschrijf jij het $foto object.
$foto = toNull(escape($foto->getFoto()),true);

Op regel 3 is $foto dus geen object meer, en heeft ie dus geen member functions meer.

De > ontbreekt inderdaad ook zoals in voorgaande posts gezegd, maar ik ga er vanuit dat dat een copy paste of debug foutje is, want zonder de > krijg je een parse error, en niet de error die jij aangeeft.

[ Voor 41% gewijzigd door _Sunnyboy_ op 16-04-2010 15:39 ]

Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life


Acties:
  • 0 Henk 'm!

  • koli-man
  • Registratie: Januari 2003
  • Laatst online: 12-09 14:21

koli-man

Bartender!!!!

Gebruik anders een ide, die ondersteunt je hierin. PhpEclipse of Zend of iets anders wat je het fijnste vind.

Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hey allemaal,

Bedankt! 't Is inderdaad gelukt, stom van me om die fout te overzien.. :')

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 20:57

MueR

Admin Tweakers Discord

is niet lief

Hoi Orison, welkom op GoT :w

Wil je in het vervolg de beleidstopics iets beter doorlezen? Dit topic hoort in Programming, zoals te lezen is in Waar hoort mijn topic?. Ik verplaats het topic echter niet, het is een te basic debugvraag. Ik ga het topic daarom ook dicht gooien.

Om dit soort fouten op te lossen zul je moeten debuggen. Als je niet weet hoe dat moet, lees Programming FAQ - Debuggen: hoe doe ik dat? eens door, dat staat vol nuttige tips.

Anyone who gets in between me and my morning coffee should be insecure.

Pagina: 1

Dit topic is gesloten.