Hoi,

Ik ben een script aan het schrijven om bij te houden welke voetbalplaatjes ik nog moet. Alle plaatjes staan in de database met een veld 'bezit', dat 'ja' of 'nee' is. In de browser staan alle nummers en als ik op een nummer klik, wordt 'nee' veranderd in 'ja'. De bedoeling is dat de klasse van het nummer dan verandert, zodat ik kan zien welke ik wel en niet heb.
Dit is het script:

<php
if(isset($_GET['kies']))
	              {
	              	// Verander 'nee' in 'ja' \\
	              	mysql_query("UPDATE plaatjes SET bezit='ja' WHERE nummer='".$_GET['kies']."'");
	              }

	              $j=1;
	              for($k=1; $k<=32; $k++)
	              {
	              	  echo "<tr>";
		              for($i=$j; $i<=$j+19; $i++)
		              {
		            	$query = mysql_query("SELECT bezit FROM plaatjes WHERE nummer='".$i."'");
		              	while($row = mysql_fetch_assoc($query))
		            	{
		            		if($row['bezit']='nee')
		            		{
		            			echo "<td class='abc'><a href='?kies=".$i."'>".$i;"</td>";
		            		}
		            		else
		            		{
		            			echo "<td class='def'><a href='?kies=".$i."'>".$i;"</td>";
		            		}
		            	}
		            			              	
		              }
		              echo "</tr>";
		              $j=$i;
	              }
?>

Het gaat goed in de database; als op een nummer heb geklikt, verandert 'nee' in 'ja'.
Maar bij de if-statement gaat het fout. In de broncode hebben alle td's dezelfde klasse. Ik snap er niks van. Wat doe ik fout?

[size=xsmall]Toevoeging op 13/10/2011 14:30:30:[/size]

Laat maar zitten, ik heb het al gezien.
if($row['bezit']='nee') moet natuurlijk met ==
Sukkel dat ik ben :P
En je script is niet beveiligd tegen SQL injection, en foutafhandeling ontbreekt.

$row['bezit']='nee'


kijk eens goed. In plaats van de twee variabelen te vergelijken, ken je ze toe aan elkaar.

overigens is het beter om gebruik te maken van True (1) of False (0). database instellen op een boolean en je kunt weer verder.
Het is wel een beetje dubbel op zo. Je schrijft de gehele regel opnieuw alleen maar om de class te veranderen.

<?php

$class = ($row['bezit'] == 'nee') ? 'abc' : 'def' ;

?>

Nu hoef je alleen maar de var $class in 1 regel te stoppen.

Reageren