Avatar billede sevinding Juniormester
01. december 2014 - 09:02 Der er 8 kommentarer og
1 løsning

if or else

Hej.
Jeg har et banalt problem med nedenstående script for den der kan:

if($r['landsdel'] == '379') echo 'Unknown' else "($r[landsdel])\n";

Uden det store kendskab har jeg prøvet, tror jeg, alt.
Det jeg vil er, at hvis der der står 379 i feltet 'landsdel' skal der udskrives "Unknown" ellers skal der udskrives det der står i feltet 'landsdel'.
Skulle der være en barmhjertig sjæl i julestemning derude der lige vil omskrive mit ynkelige forsøg?
Avatar billede Slater Ekspert
01. december 2014 - 09:21 #1
Du er tæt på, men det er nemmere at overskue hvis du deler instruktionerne op i linjer

if($r['landsdel'] == '379')
  echo 'Unknown'
else
  "($r[landsdel])\n";

Så kan du se for det første at der mangler semikolon efter 'Unknown'-linjen, og for det andet skal der også 'echo' før den anden udskrift. Og så ved jeg ikke helt hvad pointen med parentesen der er.

For god kodes skyld bør $r[landsdel] også være $r['landsdel'] begge steder. PHP vil udføre det andet korrekt, men det er egentlig en fejl at skrive det sådan.

Måske bør sidste linje hellere omskrives til
echo $r['landsdel'] , "\n";
?
Avatar billede michael_stim Ekspert
01. december 2014 - 09:53 #2
if($r['landsdel'] == '379'){
  echo 'Unknown';
} else{
  echo $r['landsdel'] ."\n";
}

Hvis r['landsdel'] f eks = sdr. Omme og man skriver det som $r[landsdel] er det ikke sikkert du får "Omme" med, så hut jeg hvisker.
Avatar billede sevinding Juniormester
01. december 2014 - 10:24 #3
Hej viperine.
Tak for responsen.
Mens jeg prøvede dit forslag, kom der et færdigt resultat fra michael_stim, som jeg benytter mig af.

Hej Michael.
Mane tak for løsningen. Den sad lige i øjet.
Gør du lige foranstaltninger til at jeg kan afgive point.
God jul til jer begge
Svend
Avatar billede michael_stim Ekspert
01. december 2014 - 10:48 #4
Jeg byggede bare videre på viperines svar, så bed ham om at lägge et svar.

God jul til dig også.
Avatar billede Slater Ekspert
01. december 2014 - 11:54 #5
#3: Jeg tænkte bare, du hellere ville lære noget i stedet for bare at copy-paste. Beklager da hvis det var skudt forbi.

God jul.
Avatar billede SpecOp Nybegynder
01. december 2014 - 13:10 #6
For lige at tage den et skridt videre, kan du også bruge shorthand modellen:

print ( $r["landsdel"] == "379" ? $r["landsdel"] : "Unknown" );
Avatar billede sevinding Juniormester
01. december 2014 - 13:23 #7
Hej igen viperine.
Jo, jeg er også ude på at lære. Jeg havde prøvet at ændre hvad jeg kunne uden resultat, og var ved at skrive til dig da jeg stadig ikke fik det til at virke.
Da der så kom et script tog jeg imod det. Ved efterf. sammenligning mener jeg så at jeg har luret hvor problemet lå.
Michael vil ikke ha pointene, så jeg håber du lægger et svar så jeg kan få dem givet.
MVH
Svend
Avatar billede Slater Ekspert
02. december 2014 - 14:38 #8
Point må være til den, du føler har hjulpet mest - så hvis ikke Michael vil have dem, synes jeg bare du skal tage dem igen selv. Men held og lykke med det.
Avatar billede sevinding Juniormester
02. december 2014 - 14:53 #9
slutter
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester