Goedeavond,

Ik heb een script geschreven in PHP waar je getallen [voor en na] in kan voeren, die worden opgeslagen in een database. Vervolgens heb ik op dezelfde pagina de lijst met getallen uit de database in een tabel staan.

Zo; 1 rij met 3 kolommen: VOOR - NA - KLEUR

Kleur is afhankelijk van de voor en na getallen. Ik heb het op dit moment zo gedaan, maar hij toont maar één kleur (geel). Dus ik doe iets fout.


echo" <td width='16'>"; returnKleur(); echo "</td>"; 

--- 

function returnKleur(){
if ($voor > $na{
	echo "<img src='rood.gif'>";
} elseif ($voor == $na) {
	echo "<img src='geel.gif'>";
} else {
	echo "<img src='groen.gif'>";
}
}


Hoe kan ik ervoor zorgen dat dit per rij (id) in de database gebeurd? Dus dat als de uitkomst negatief is van de getallen rood, gelijk geel en positief rood.

Alvast bedankt!
Ik heb geen idee wat je aan het uitspoken bent, erg onduidelijk verhaal.

Echo $voor en $na eens en kijk welke waardes deze hebben. Verder heb ik geen flauw idee hoe jij de data uit de database haalt en welke waardes er in de database staan.
Hoe kom je om te beginnen aan de variabelen $voor en $na. Waar lees je het uit de database en hoe probeer je het weer te geven?

Aan de functie returnKleur() opzich is niet zoveel mis.

edit: zie hieronder...
$voor en $na zijn beiden niet gezet in de functie, en dus hetzelfde en dus geeft $voor == $na TRUE...

Als je nu de functie aanpast en argumenten meegeeft gaat het waarschijnlijk wat beter ...

function returnKleur($voor, $na)


En bij het aanroepen ook even meegeven natuurlijk

Oh ja, en omdat je de functie RETURN kleur noemt

doe dan ook return (ipv echo)
Je zou het al in SQL kunnen bepalen, een CASE doet wonderen:

SELECT
  voor,
  na,
  CASE
    WHEN voor < na THEN 'groen'
    WHEN voor > na THEN 'rood'
    ELSE 'geel'
  END AS kleur
FROM 
  tabelnaam

Excuses voor de onduidelijke uitleg en bedankt voor de snelle reacties.

De oplossing van pgFrank werkt prima, bedankt!

Reageren