Beste PHPhelpers,

Na lang op internet zoeken wat deze foutmelding, betekend, dacht ik er is maar 1 oplossing en het is op het forum zetten.

[red]Parse error: parse error, unexpected T_VARIABLE, expecting T_CASE or T_DEFAULT or '}' in baran/pageholder.class.php on line 7[/red]

Ik hoop dat jullie mij kunnen helpen met het oplossen van deze foutmelding.

MVG,
Marlon

De code..

<?php
include("includes/dbconnect.php");

class PageHolder {
	function asHtml($i = 0) {
		switch($i) {
			$sql = "SELECT * FROM paginas";
			$resultaat = mysql_query($sql);
			while($rij = mysql_fetch_object($resultaat)) {
				case $rij->$PageId:
					return "<h2>".$rij->$titel."</h2><p>".$rij->$beschrijving."</p>";
					break;
			}
		}
	}
}
?>
ik zie hier geen fout in zo snel...

<?php
include("includes/dbconnect.php");

class PageHolder {
    function asHtml($i = 0) {
        $sql = "SELECT * FROM paginas";
        $resultaat = mysql_query($sql);
        while($rij = mysql_fetch_object($resultaat)) {
            switch($i) {
                case $rij->$PageId:
                    return "<h2>".$rij->$titel."</h2><p>".$rij->$beschrijving."</p>";
                    break;
            }
        }
    }
}
?> 


Werkt dat misschien?
heb je wel het hele script gedropt??
want er staat regel 7 en regel 7 is dit:
$sql = "SELECT * FROM paginas";
Leroy, kijk naar de foutmelding en naar Andries zijn oplossing. De foutmelding zegt dat hij case of default verwacht. Dus geen $sql = '...

Andries zijn oplossing lijkt mij de juist.
Is er geen mogelijkheid, om binnen functie switch met databases te werken want mijn applicatie maakt gebruik van switch en als PHP met de functie while switch elke keer herhaald, komt er een foutmelding :S
In de eerste plaats werk jij binnen de switch niet met de database, hooguit met een variabele die is gebaseerd op gegevens die uit een database komen. En dat maakt die switch echt helemaal niets uit... Verder kun je binnen een switch prima een database aanroepen, geen enkel probleem.

En met de opmerking 'een foutmelding' kan helemaal niemand wat, maar dat had je zelf natuurlijk ook al bedacht. Het is al laat, zullen we maar zeggen... ;)
Nu dit, je maakt dus een method: asHtml($i = 0)

Je wil dus uiteindelijk maar één resultaat tegelijk laten zien?

Waarom haal je dan alles uit de database?
$sql = "SELECT * FROM paginas";

Doe beter iets als dit:

function asHTML($id=0){
    $query = "SELECT titel, beschrijving FROM table WHERE id=".$id.";";
    $result = mysql_query($query) or die(mysql_error());
    while($row = mysql_fetch_assoc($result){
        return "<h2>".$row['titel']."</h2><p>".$row['beschrijving']."</p>";
    }
}
Nee, ik wil meerdere resultaten te zien krijgen die moeten weer gegeven worden met cases, mijn ajax script, haalt doormiddel van cases haar data op.

Ik wil de functie switch dynamisch maken, zo dat ik alle informatie via een database toe kan voegen.


Hij zou het weer moeten geven zoals de code hieronder, maar met de functie while lukt dat niet en geeft dus direct een foutmelding dat er een onverwachte functie staat.


<?php
class PageHolder {
    function asHtml($i = 0) {
            switch($i) {
                case 0:
					return "<h2>Titel</h2><p>Beschrijving</p>";
               		break;
                case 1:
                	return "<h2>Titel1</h2><p>Beschrijving1</p>";
                	break;
                case 2:
                	return "<h2>Titel2</h2><p>Beschrijving2</p>";
                	break;
        }		
    }
}
?> 
$object->var

En dus niet:

$object->$var

En dus niet:

$rij->$PageId

Maar wel:

$rij->PageId

Snap of niet snap?

Reageren