<?php
	$result = $fiz['db']->query("SELECT wallpost_from FROM {$fiz['db_prefix']}status WHERE user = ".$_SESSION['fiz_user']." AND wallpost = 1 AND notificated = 0;");
	if($result->rowCount() != 0)
	{
		while($wallpost = $result->fetchObject());
		{
			$profile = fizGetProfile($wallpost->wallpost_from);
			out('
			<div id="question">
				'.sprintf(NOTIFICATION_WALLPOST, $profile->firstname." ".$profile->lastname).'
			</div>
			');
		}
	}
?>


Dit geeft

Notice: Trying to get property of non-object in E:\xampp\htdocs\fizlounge\templates\fizlounge\notifications.template.php on line 47

Terwijl


<?php
	$result = $fiz['db']->query("SELECT wallpost_from FROM {$fiz['db_prefix']}status WHERE user = ".$_SESSION['fiz_user']." AND wallpost = 1 AND notificated = 0;");
	if($result->rowCount() != 0)
	{
		$wallpost = $result->fetchObject();
		$profile = fizGetProfile($wallpost->wallpost_from);
		out('
		<div id="question">
			'.sprintf(NOTIFICATION_WALLPOST, $profile->firstname." ".$profile->lastname).'
		</div>
		');
	}
?>

Gewoon doet wat ik wil, alleen werkt dat maar 1 keer, ik kan er niet achter komen wat ik fout doe...

Misschien jullie wel?
Wat is in je eerste stukje script de regel die overeenkomt met regel 47 uit je complete script?
je gebruikt rowCount() op een SELECT query. dat werkt niet altijd.
Zonder de if($result->rowCount() != 0) er om heen blijft het probleem helaas bestaan.
Regels die fouten opleveren zijn alle regels waar naar een property van $wallpost en $profile wordt gevraagd, die bij de onderste code wel bestaan als object, en bij de bovenste nie.
Je kunt met var_dump die inhoud van die variabelen binnen die loop eens weergeven. Zo kun je zien wat erin zit en waarom het niet werkt?
var_dump($wallpost); geeft bool(false)
Wat zou betekenen dat het niet lukt om $wallpost gelijk te stellen aan $result->fetchObject() zolang de vooraad strekt.

Ik zou niet weten waarom dat niet lukt...

Want op andere plekken in de code werkt exact dezelfde structuur wel

[size=xsmall]Toevoeging op 01/04/2012 16:51:14:[/size]

Hmm... het was kennelijk mogelijk om een puntkomma hier te hebben:
while($wallpost = $result->fetchObject());

viel me niet op, maar naar nog een keer goed kijken wel dus, en hij doet, iig bedankt voor jullie hulp :)

Reageren