if, elseif en else

Status
Niet open voor verdere reacties.

Saviola

Gebruiker
Lid geworden
30 jun 2002
Berichten
793
Hallo,

Ik ben bezig met PHP leren, nu heb ik het volgende:

PHP:
<?php

if ($_POST['keuze'] == mooi) {
	echo "U heeft voor mooi gekozen";
	}
elseif ($_POST['keuze'} == gaat wel) {
	echo "U heeft voor gaat wel gekozen";
	}
elseif ($_POST['keuze'] == slecht) {
	echo "U heeft voor slecht gekozen";
	}
else {
	echo "U heeft niks ingevuld";
	}

?>

Maar dat werkt niet. Wat doen ik fout? Ik snap het elseif statement nog niet helemaal :D

Dit script wordt aangeroepen via een formulier met radiobuttons. Namen zijn van alledrie 'keuze' en de values mooi, gaat wel, slecht.

Zoals je misschien al door had moet het uiteindelijk een poll o.i.d. worden.

Alvast bedankt!
 
Laatst bewerkt:
bij java is het: else if (dus niet aan elkaar)
maar ik weet niet of dat bij php ook zo is
 
Geplaatst door aaajeetee
bij java is het: else if (dus niet aan elkaar)
maar ik weet niet of dat bij php ook zo is

Ik weet bijna zeker dat het elseif is. In Perl is het elsif. Maar ik zal het even testen :)
 
verander het sluitingsteken van de elseif (bij gaat wel) eens in een ] ipv een } :) ;).

Ook zou ik de woorden tussen aanhalingstekens zetten als ik jou was...
 
Geplaatst door pcfixer
verander het sluitingsteken van de elseif (bij gaat wel) eens in een ] ipv een } :) ;).

Ook zou ik de woorden tussen aanhalingstekens zetten als ik jou was...

Oke, beide gedaan. En hij werkt! Stom had ik zelf aan moeten denken :D

Bedankt! :thumb:
 
Geplaatst door Saviola


Oke, beide gedaan. En hij werkt! Stom had ik zelf aan moeten denken :D

Bedankt! :thumb:

Goed plan om voordat je verder gaat, eerst altijd je code nauwkeurig nakijken op fouten, anders dan is het achteraf heel lastig om de fout(en) te lokaliseren.

Maar iig is het opgelost maar snap je nou ook wat je fout deed en waarom je de condities van de if tussen aanhalingstekens moet zetten ("ja, anders geeft ie een fout" is niet het juiste antwoord :p :D)
 
Ja, doe ik meestal wel, maar vaak te snel.

Dat haakje was een typo.

Misschien tussen haakjes om duidelijker aan te geven wat je bedoeld? En om fouten te voorkomen :D
 
Geplaatst door Saviola

Misschien tussen haakjes om duidelijker aan te geven wat je bedoeld? En om fouten te voorkomen :D

Nee, anders had PHP geen error gegeven want dat maakt de parser echt niets uit of het duidelijker is of niet. PHP zal ook niet vastlopen als je geen enkele commentaar regel in je script hebt, daar let ie niet eens op :cool:.

Nee, je zult het tussen aanhalingstekens moeten zetten omdat het een string is. Dat doe je immers ook bij het echo commando. Dat wat je op het scherm gooit met echo's zijn strings. Zo ook de condities waaraan "keuze" aan moet voldoen wil het if statement waar (true) teruggeven. Maar niet alle tekens (anders dan getallen) hoeven per definitie een string te zijn. Je hebt ook constanten die zonder kunnen:


__FILE__, __LINE__, PHP_SELF.... Dat zijn er een paar.
 
Oke bedankt.

Ik had eerder weleens een eenvoudig if statement gemaakt, en die deed het wel zonder aanhalingstekens. Dus dacht ik dat het bij deze ook wel zou werken.
 
Laatst bewerkt:
Geplaatst door Saviola
Oke bedankt.

Ik dan eerder weleens een eenvoudig if statement gemaakt, en die deed het wel zonder aanhalingstekens. Dus dacht ik dat het bij deze ook wel zou werken.

waarschijnlijk met getallen dan? Getallen mogen (wil je ze 100% goed kunnen gebruiken) niet eens tussen haakjes. Doe je dat wel dan zal php het behandelen als een string en zal de functie is_int($variabele) false teruggeven, al is de waarde die de string bevat weldegelijk een getal. Alleen jij "dwingt" php er min of meer om het als een string te zien. Dus wil je dat het een integer blijft voor php dan zul je het zonder enige aanhalingstekens moeten plaatsen.

Trouwens, geen man over boord als je het wel doet, niet als je een beginner bent tenminste.
 
Geplaatst door pcfixer


waarschijnlijk met getallen dan? Getallen mogen (wil je ze 100% goed kunnen gebruiken) niet eens tussen haakjes. Doe je dat wel dan zal php het behandelen als een string en zal de functie is_int($variabele) false teruggeven, al is de waarde die de string bevat weldegelijk een getal. Alleen jij "dwingt" php er min of meer om het als een string te zien. Dus wil je dat het een integer blijft voor php dan zul je het zonder enige aanhalingstekens moeten plaatsen.

Trouwens, geen man over boord als je het wel doet, niet als je een beginner bent tenminste.

Ja, ik geloof dat het getallen waren.

Ik heb het allemaal nu wel een beetje door :) Bedankt.
 
Coole poll, zeker voor een beginner!

Lees nu alleen nog ff mijn handleiding in tips & handleidingen want hoe je je php html code laat parsen is niet om aan te zien natuurlijk. Alles wordt hup bam achter elkaar geplakt. Met linebreaks kun je er wat orde in brengen...
 
Geplaatst door pcfixer
Coole poll, zeker voor een beginner!

Lees nu alleen nog ff mijn handleiding in tips & handleidingen want hoe je je php html code laat parsen is niet om aan te zien natuurlijk. Alles wordt hup bam achter elkaar geplakt. Met linebreaks kun je er wat orde in brengen...

Bedankt :)

De source ziet er niet uit nee.. Je handleiding heb ik al eens gelezen, zal het dan nu gaan toepassen.
 
Je maakt een afbeelding aan van 1 pixel.
Je berekent in procenten hoe lang de grafiek moet worden per keuze-optie (aantal stemmen / totaal stemmen * 100)
Je maakt een tabel aan.

$l1 + $l2 heb ik even genomen voor de lengte.

table
tr
td > Optie 1
td > img src="pixel.jpg" width="$l1%" height="10"
tr
td > Optie 2
td > img src="pixel.jpg" width="$l2%" height="10"

enz.

/table
 
Laatst bewerkt:
Geplaatst door chrisgeerdink
Je maakt een afbeelding aan van 1 pixel.
Je berekent in procenten hoe lang de grafiek moet worden per keuze-optie (aantal stemmen / totaal stemmen * 100)
Je maakt een tabel aan.

$l1 + $l2 heb ik even genomen voor de lengte.

table
tr
td > Optie 1
td > img src="pixel.jpg" width="$l1%" height="10"
tr
td > Optie 2
td > img src="pixel.jpg" width="$l2%" height="10"

enz.

/table

Bedankt! Stuk eenvoudiger dan ik dacht. Alleen het aantal stemmen staan apart in een row. Als ik ze in een array plaats, hoe kan ik ze dan optellen?

Ga ik vanmiddag eens even mee rommelen.
 
$query = mysql_query("SELECT * FROM poll");
$r = mysql_fetch_assoc($query);
$totaal = $r['optie1'] + $r['optie2'] + $r['optie3'];
$l1 = $r['optie1'] / $totaal *100;
$l2 = $r['optie2'] / $totaal *100;
$l3 = $r['optie3'] / $totaal *100;

en dan de tabel
 
Bedankt :thumb:

Als ik de nieuwe poll af heb zal ik hem plaatsen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan