Archief - PHP: gastenboek class

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

tikketim

Legacy Member
Ik ben me even in de wereld van de php classes aan het verdiepen en dacht als oefening een gastenboekje te maken. Nu heb ik al een probleem , ik krijg namelijk niets te zien.

PHP:
<?php

class gastenboek { //begin class gastenboek

//class members aanmaken
private $id;
private $naam;
private $bericht;
private $result;
public $compilatie;

//functie om alles uit de database te halen
function getfromdb($id,$naam,$bericht){

    //config includen
    include "config.php";

    //query om de berichten uit de database te halen
    $result = mysql_query("SELECT * FROM gastenboek ORDER BY id DESC");
    while($r=mysql_fetch_array($result)){ //begin while lus

        $this->naam = $r["naam"];
        $this->berichten = $r["berichten"];

        //alles samen
        $this->Compilatie = "<p>naam : " . $this->naam . "</p><p> ". $this->berichten . "</p>";
    } //einde while lus

}//einde functie om alles uit de database te halen

} // einde class gastenboek

$gastenboek = new gastenboek();

echo $gastenboek->Compilatie;

?>

Wat doe ik hier verkeerd ?
Aan de config.php ligt het al niet , die klopt helemaal.
In de database hier lokaal zit ook al een bericht , daar ligt het ook al niet aan.

solefly6

Legacy Member
Moet je je functie dan niet oproepen eerst? Ik ben nu niet zo'n php kenner maar op het eerste zicht lijkt het me daar aan te liggen, dat je niets ziet is omdat je je compilatie nog geen waarde hebt gegeven in het begin.

killgore

Legacy Member
this->Compilatie

moet zijn

this->compilatie

Leve hoofdlettergevoeligheid.

als je error reporting hoog genoeg had gezet zou je dit onmiddellijk gezien hebben denk ik :p.

tikketim

Legacy Member
Ik heb nu alles in kleine letters gezet , geen effect.
Heb error reporting op all gezet maar ik krijg ook geen error.

killgore

Legacy Member
ik gok ook dat je beter config.php helemaal bovenaan include ipv in een functie-body :p.


edit: en idd, waar roep je die functie eigenlijk op :p?

tikketim

Legacy Member
Als ik de config.php include helemaal bovenaan in de class krijg ik volgende error :

Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION in H:\wamp\www\class\oef3.php on line 14

Ik roep de functie nu zo aan :

$gastenboek = new gastenboek();
echo $gastenboek->getfromdb($id,$naam,$bericht);

tikketim

Legacy Member
Het is inorde nu :)

PHP:
<?php

error_reporting(E_ALL);
class gastenboek { //begin class gastenboek

//class members aanmaken
private $naam;
private $bericht;
private $result;
private $r;
public $compilatie;

//functie om alles uit de database te halen
public function getfromdb(){

    //config includen
    include "config.php";

    //query om de berichten uit de database te halen
    $result = mysql_query("SELECT * FROM berichten ORDER BY id DESC");
    while($r=mysql_fetch_array($result)){ //begin while lus

        $this->naam = $r["naam"];
        $this->berichten = $r["berichten"];

        //alles samen
        echo $this->compilatie = "<p>naam : " . $this->naam . "</p><p> ". $this->berichten . "</p>";
    } //einde while lus

}//einde functie om alles uit de database te halen

} // einde class gastenboek

$gastenboek = new gastenboek();
echo $gastenboek->getfromdb();


?>

Waar die config.php word geinclude maakt niets uit Killgore , ik heb ook getest. De fout zat in de functie , ik had geen "echo" staan voor $this->compilatie = "<p>naam : " . $this->naam . "</p><p> ".

Toch bedankt ;)

killgore

Legacy Member
als je enkel variabelen declareert maakt dat idd niet uit, maar het is gewoon geen proper programmeren.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan