Hoi,

ik wil graag dat als er niks in mijn table staat dat er komt te tsaan echo "1" en als er wel wat staat dat echo "2". Ik probeer het met if en empty maar het lukt maar niet.


<?php
$SQL2 =  "SELECT 
			 vierkleuren_edit_id,
             eerste_druk, 
             staat, 
             opmerkingen
         FROM 
             ".$reeks."_edit
		 WHERE
		 	 ".$reeks."_id = ".$id."
		 AND
		 	users_id = ".$_SESSION['user_id']."";
		
 		$result2 = mysql_query($SQL2);
		while ( $db_field2 = mysql_fetch_assoc($result2) ) {	
		
			$vierkleuren_edit_id = $db_field2[vierkleuren_edit_id'];
			if (!empty($vierkleuren_edit_id)){
					echo "1";
				}
				else
				{
					echo "2";
					}
		}
		mysql_close($db_handle);
?>


Dus als er geen record in de table is dan echo "1"; en anders echo "2";.... wat doe ik fout??

Ik heb het al gevonden mijn if statement stond helemaal verkeerd!!! haha
kijk eens naar de while lus. Deze wordt zovaak uitgevoerd als mysql_fetch_assoc een nieuwe rij teruggeeft. Het probleem komt al een beetje omdat je de de rij opslaat in een variabele met de naam $db_field2. Dit is geen toepasselijke naam en dus wordt je op het verkeerde been gezet. noem deze variabele liever iets als '$row' of '$record'. Dan is het een logische zaak dat $vierkleuren_edit_id dus altijd een waarde bevat, anders komen we namelijk helemaal niet in de while lus!

Om nou een mogelijkheid te scheppen om iets te doen indien er geen records zijn gevonden in de database kun je het beste gebruik maken van mysql_num_rows($result2):

<?php
$SQL2 = "SELECT
vierkleuren_edit_id,
eerste_druk,
staat,
opmerkingen
FROM
".$reeks."_edit
WHERE
".$reeks."_id = ".$id."
AND
users_id = ".$_SESSION['user_id'];

$result2 = mysql_query($SQL2);

if(mysql_num_rows($result2) == 0)
{
// geen rijen gevonden, doe iets
}
else
{
while ( $row = mysql_fetch_assoc($result2) )
{
echo $row['vierkleuren_edit_id'].'<br>';
}
}

mysql_close($db_handle);

?>

Reageren