Toon posts:

[PHP]Call to undefined method

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Mijn excuses, 'k heb precies een fouten dag..
Ik krijg dus een error op mijn code, de error is als volgt:

Fatal error: Call to undefined method BLGebruikercommunicatie::getCommunicatieId() in /srv/www/html/projecten/project31/Zwemclub/classes/CRUDGebruikercommunicatie.php on line 23

Ik krijg de error op mijn code;
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public function updateGebruikercommunicatie ($gebruikercommunicatie)
    {
        $gebruikerId = $gebruikercommunicatie->getGebruikerId();
                $communicatieId = $gebruikercommunicatie->getCommunicatieId();
                $waarde = toNull(escape($gebruikercommunicatie->getGebruikerId()),true);
                $ice = $gebruikercommunicatie->getIce();

        $sql = "UPDATE gebruikercommunicatie
            SET gebruikerId = $gebruikerId,
            communicatieId = $communicatieId,
                        waarde = $waarde,
                        ice = $ice
            WHERE id = $id";

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


Het stuk dat hij eigenlijk moet uitvoeren is;
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
$gebruikerid =$laatstegebruikerid->getId();
    
    //We gaan kijken of de ouders gescheiden zijn of niet
    if ($_POST["gescheiden"] == "ja"){
        $gsmvader = $_POST["gsmvader"];
        $gsmmoeder = $_POST["gsmmoeder"];
        $telefoonvader = $_POST["telefoonvader"];
        $telefoonmoeder = $_POST["telefoonmoeder"];
        for ($i = 1; $i <= 5; $i++){
            if($i == 1){
                $gebruikercommunicatie = new BLGebruikercommunicatie(0,$gebruikerid,2,$gsmvader,0);
            }
            if($i == 2){
                $gebruikercommunicatie = new BLGebruikercommunicatie(0,$gebruikerid,2,$gsmmoeder,0);
            }
            if($i == 3){
                $gebruikercommunicatie = new BLGebruikercommunicatie(0,$gebruikerid,1,$telefoonvader,0);
            }
            if($i == 4){
                $gebruikercommunicatie = new BLGebruikercommunicatie(0,$gebruikerid,1,$telefoonmoeder,0);
            }
            if($i == 5){
                $gebruikercommunicatie = new BLGebruikercommunicatie(0,$gebruikerid,3,$email,0);
            }
            $blGebruikercommunicatie->insertGebruikercommunicatie($gebruikercommunicatie);
        }
    } else {
        $gsmvader = $_POST["gsmvader"];
        $gsmmoeder = $_POST["gsmmoeder"];
        $telefoon = $_POST["telefoon"];
        for ($i = 1; $i <= 4; $i++){
            if($i == 1){
                $gebruikercommunicatie = new BLGebruikercommunicatie(0,$gebruikerid,2,$gsmvader,0);
            }
            if($i == 2){
                $gebruikercommunicatie = new BLGebruikercommunicatie(0,$gebruikerid,2,$gsmmoeder,0);
            }
            if($i == 3){
                $gebruikercommunicatie = new BLGebruikercommunicatie(0,$gebruikerid,1,$telefoon,0);
            }
            if($i == 5){
                $gebruikercommunicatie = new BLGebruikercommunicatie(0,$gebruikerid,3,$email,0);
            }
            $blGebruikercommunicatie->insertGebruikercommunicatie($gebruikercommunicatie);
        }
    }

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Nou, blijkbaar heb je geen getCommunicatieId method in je BLGebruikercommunicatie object.

Dat is een letterlijke vertaling van de foutmelding en dat zou toch echt genoeg moeten zijn.

offtopic:
1. Overigens krijg je met [php][/php] tags PHP highlighting cadeau hier ;)

2. Zo'n for loopje waar je steeds 1 regel code doet is overignes imo bijzonder lelijke codestijl, maar daar komt deze fout niet door.

[ Voor 40% gewijzigd door Voutloos op 16-04-2010 19:58 ]

{signature}


Acties:
  • 0 Henk 'm!

  • hostname
  • Registratie: April 2009
  • Laatst online: 07-10 20:33
De class BLGebruikercommunicatie heeft de functie 'getCommunicatieId' niet (undefined method) ;) Daar had je zelf toch ook wel achter kunnen komen gezien de foutmelding?

gebruik voortaan de [code=php] tags, dan krijgt je code automatisch syntax highlighting mee :)

[ Voor 49% gewijzigd door hostname op 16-04-2010 19:56 . Reden: hint naar [code=php] toegevoegd ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dit is rechtstreeks uit mijn Gebruikercommunicatie.php:
PHP:
1
2
3
4
5
6
7
        public function getCommunicatieId() {
            return $this->communicatieId;
        }

        public function setCommunicatieId($communicatieId) {
            $this->communicatieId = $communicatieId;
        }


Dus ik snap het niet echt..

Acties:
  • 0 Henk 'm!

  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 02:47
En staat er ook
PHP:
1
class BLGebruikercommunicatie {


boven. ;)

Of staat daar, wat correcte camelcasing zou zijn:
PHP:
1
class BLGebruikerCommunicatie {
en heb je niet op de class name gelet. ;)

[ Voor 48% gewijzigd door Jaap-Jan op 16-04-2010 20:05 ]

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett


Acties:
  • 0 Henk 'm!

  • BrZ
  • Registratie: Maart 2000
  • Laatst online: 10-10 13:45

BrZ

Heeft er zo te zien niet zoveel mee te maken, maar dit lijkt me niet al te effectief:
PHP:
1
2
3
4
        for ($i = 1; $i <= 4; $i++){
            if($i == 5){
            }
        }

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Nou ja, dat is wel een bug, want dan ga je nog keer hetzelfde object aan insertGebruikercommunicatie() meegeven.

Had ik al gezegd dat het lelijke code style was? :P

{signature}


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hey allemaal,

't is opgelost..
Die casing mogen we niet gebruiken van onze school uit, waar de logica daarin zit.. weet ik zelf niet..
De fout die BrZ heeft gezegd, had ik net ook door.. Maar die undefined method heb ik nog gevonden..

Blijkbaar zette ik..
PHP:
1
$gebruikercommunicatie = new BLGebruikercommunicatie(0,$gebruikerid,2,$gsmvader,0);

In plaats van
PHP:
1
$gebruikercommunicatie = new Gebruikercommunicatie(0,$gebruikerid,2,$gsmvader,0);


Wat dus compleet stom is van me.. vriend van me heeft het gezien ;-)
Toch bedankt voor de hulp allemaal!
Pagina: 1