Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[PHP] kom er niet uit met if en else

Pagina: 1
Acties:

  • Rhndy
  • Registratie: Februari 2010
  • Laatst online: 04-06 09:32
Beste Tweakers,

Het was lastig om een goede topictitel te bedenken maar als ik het probleem uitleg moet het hopelijk wel duidelijk zijn. Ik ben bezig om iets te 'bouwen' in PHP en ik stuit op wat problemen.

Ik importeer via $simplexml_load_file een xml uit een url en parse daar een aantal elementen uit ($tempC, $windspeed en $precipmm.
Dat doe ik op de volgende manier:

code:
1
$tempC = $weather->current_condition[0]->temp_C;


Als ik een 'echo' doe naar $tempC dan krijg ik netjes het resultaat te zien. Tot zover gaat het volgens mij dus goed.

Wat ik wil is een aantal parameters opstellen waarbij mijn php-code aangeeft of iets wel of niet plaats kan vinden.

De code ziet er zo uit:

code:
1
2
3
4
5
6
if ($tempC > 21) 
if ($windspeed < 21)
if ($precipMM == 0.0)
{echo 'JA';}
else
{echo 'NEE';}


Wat ik wil zeggen is:
Als $tempC hoger is dan 21, $windspeed lager is dan 21 en $precipMM 0.0 is, geef dan JA (het wordt een afbeelding) weer.
Als dit niet zo is geef dan NEE (wordt ook een afbeelding) weer.
Het gaat er dus om dat er gecheckt wordt dat aan alle 3 de parameters wordt voldaan.

Het probleem:
De XML die ik uit de API haal geeft de volgende waarden:
tempC: -2
windspeed: 39
precipMM: 0.0

Hij zou dus NEE aan moeten geven. Bij het opvragen van de php-file krijg ik een lege pagina te zien.

Pak ik een andere XML-file met deze waarden:
tempC: 28
windspeed: 4
precipMM: 0.0

Daar zou dus JA uit moeten komen, en dit wordt ook netjes getoond.

Ik snap niet wat ik fout doe, als ik google naar het implementeren van else en conditions stuit ik niet op voorbeelden die enigzins overeen komen met mijn probleem.

Kunnen jullie mij helpen met dit probleem?

Alvast bedankt voor jullie hulp.

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 23:34

Onbekend

...

Dit is jouw code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if ($tempC > 21) 
{
    if ($windspeed < 21)
    {
        if ($precipMM == 0.0)
        {
            echo 'JA';
        }
        else
        {
            echo 'NEE';
        }
    }
}

Speel ook Balls Connect en Repeat


  • Tarabass
  • Registratie: Februari 2008
  • Laatst online: 03-11 10:27

Tarabass

Webmaster

Je else is enkel onderdeel van je laatste (3de) if statement. Als er dus niet voldaan wordt aan de eerste if gebeurd er niets. En dat is wat jou nou gebeurd.

  • Rhndy
  • Registratie: Februari 2010
  • Laatst online: 04-06 09:32
Tarabass schreef op zondag 24 maart 2013 @ 10:00:
Je else is enkel onderdeel van je laatste (3de) if statement. Als er dus niet voldaan wordt aan de eerste if gebeurd er niets. En dat is wat jou nou gebeurd.
Aha, daar zit het dus in.
Wat ik heb gedaan is het volgende:
code:
1
2
3
4
5
6
7
if ($tempC > 21 && $windspeed < 21 && $precipMM == 0.0) 
  {          echo 'JA';
        }
        else
        {
            echo 'NEE';
        }

En nu werkt het dus wel..
Hartstikke bedankt voor jullie supersnelle reactie!!