/ Forside/ Teknologi / Udvikling / PHP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
If else probelm
Fra : trixster
Vist : 994 gange
300 point
Dato : 14-10-07 17:45

Hejsa

Er meget ny på PHP og har siddet og brugt et par timer på at løse mit problem med if else, men kan simplet hen ikke forstå hvorfor den ikke vil som jeg vil have den til

Min kode som jeg har prboblemmer med ser sådane ud.
DATABASE Hunter = 1, Hunter1 = 0

$r= 1;
$r2= 0;
if ($wow['hunter'] ==$r){$hunter = "<b><font color='blue'>Beast</font></b>";}
if ($wow['hunter1'] ==$r){$hunter1 = "<b><font color='blue'>Marksman</font></b>";}
else
if ($hunter == $r2 and $hunter1 == $r2){$hunter1 = "<b><font color='red'>Lukket</font></b>";}
else

Koden printer Teksten lukket ud selv om den er "falsk" oge ike hunter som er sand
Den burde kun skrive Beast da
if ($wow['hunter'] ==$r){$hunter = "<b><font color='blue'>Beast</font></b>";} denne er 1
if ($wow['hunter1'] ==$r){$hunter1 = "<b><font color='blue'>Marksman</font></b>";} denne er 0
og denne
if ($hunter == $r2 and $hunter1 == $r2){$hunter1 = "<b><font color='red'>Lukket</font></b>";}
er falsk da hunter og hunter1 ikke er lige 0


Håber i kan forstå hvad min kode skal gøre, ellers spørg så skal jeg prøve at svare så godt så muligt

Men basic i dette er
Hvis hunter er = 1 skriv text ellers spring over
hvis hunter1 er = 1 skriiv text ellers spring over
else
hvis hunter og hunter1 er = 0 skriv noget andet text

På forhånd tak
Trixster


 
 
Kommentar
Fra : justuniverse


Dato : 14-10-07 18:49

Hvis man nu tager al kode bortset fra dine if og else statements ser det sådan her ud:

if (...) {
...;
}

if (...) {
...;
} else
if (...) {
...;
}

else


Det ser umiddelbart ud til, at der er lidt rod i hvor mange if´er og else´er der egentligt skal være, og hvornår????

Den sidste "else" har ikke engang en "if" at forholde sig til (eller hvad?)

Kommentar
Fra : trixster


Dato : 14-10-07 19:02

Jo der kommer flere linjer end jeg har vist her, men det er mest en gentagelse af det første, men jeg har muligvis slet ikke brug for så mange "else" eller brugt dem forkert.

Kan godt paster hele koden men, vuderet bare at der ikke var behov for det, men lad mig vide så smider jeg det hele.


Trixster

Kommentar
Fra : natmaden


Dato : 14-10-07 19:05

Variablenavne er "følsomme" for store og små bogstaver.
Eks. er Hunter ikke det samme som hunter !

Måden at bruge IF Else findes her:
http://dk2.php.net/manual/da/language.control-structures.php

Mvh Jørgen

Kommentar
Fra : justuniverse


Dato : 14-10-07 19:13

Ud fra det, du skriver....
Citat
Hvis hunter er = 1 skriv text ellers spring over
hvis hunter1 er = 1 skriiv text ellers spring over
else
hvis hunter og hunter1 er = 0 skriv noget andet text


er der tre forskellige betingelser, du vil tjekke på? Ingen af betingelserne er magen til hinanden, så det er nok ikke nødvendigt med "else" nogen steder... Hvis "if" betingelsen ikke går i opfyldelse vil det automatisk springe videre til næste "if"...

Så det ville se nogenlunde sådan her ud:
Kode
if ($wow['hunter'] ==$r){$hunter = "<b><font color='blue'>Beast</font></b>";}
if ($wow['hunter1'] ==$r){$hunter1 = "<b><font color='blue'>Marksman</font></b>";}
if ($hunter == $r2 and $hunter1 == $r2){$hunter1 = "<b><font color='red'>Lukket</font></b>";}


.... altså ingen else...

Kommentar
Fra : ajuul


Dato : 14-10-07 19:38

Sig mig lige:
I den sidste if-sætning, skal du da ikke skrive:
Kode
if($wow['hunter']==$r2 osv
?

Kort sagt: Har du måske bare begået en typisk tanketorsk?

/ajuul

Accepteret svar
Fra : natmaden

Modtaget 300 point
Dato : 14-10-07 23:08

Prøv at se denne 'test'

Kode
<?
function testhunter($h,$h1){
$wow['hunter'] = $h;
$wow['hunter1'] = $h1;
echo "Test wow[hunter] = ".$wow['hunter'].", Og wow[hunter1] = ".$wow['hunter1']."<br>";

$r= 1;
$r2= 0;
if ($wow['hunter'] == $r){$hunter = "<b><font color='blue'>Beast</font></b>";}
if ($wow['hunter1'] == $r){$hunter1 = "<b><font color='blue'>Marksman</font></b>";}
else
if ($wow['hunter'] == $r2 and $wow['hunter1'] == $r2){$hunter1 = "<b><font color='red'>Lukket</font></b>";}

echo "Resultat:<br>hunter : ".$hunter."<br>hunter1 : ".$hunter1."<hr>";

}

testhunter(1,1);
testhunter(1,0);
testhunter(0,1);
testhunter(0,0);
?>


Den færdige kode kunne se sådan ud:

Kode
<?
$r= 1;
$r2= 0;
if ($wow['hunter'] == $r){$hunter = "<b><font color='blue'>Beast</font></b>";}
if ($wow['hunter1'] == $r){$hunter1 = "<b><font color='blue'>Marksman</font></b>";}
else
if ($wow['hunter'] == $r2 and $wow['hunter1'] == $r2){$hunter1 = "<b><font color='red'>Lukket</font></b>";}

?>


Mvh Jørgen

Kommentar
Fra : ajuul


Dato : 14-10-07 23:11

Hey, Jørgen...
Det var jo lige dét jeg skrev?
/ajuul

Kommentar
Fra : natmaden


Dato : 14-10-07 23:35

sorry ajuul

jeg havde ikke opdateret denne side og så ikke dit indlæg

Kommentar
Fra : godefotos


Dato : 04-01-08 22:53

Jeg ville måske gøre det sådan her

$r= 1;
$r2= 0;

if ($hunter == $r2 && $hunter1 == $r2){$hunter1 = "<b><font color='red'>Lukket</font></b>";} else{
if ($wow['hunter'] ==$r){$hunter = "<b><font color='blue'>Beast</font></b>";}
if ($wow['hunter1'] ==$r){$hunter1 = "<b><font color='blue'>Marksman</font></b>";}
}

/Martin

Godkendelse af svar
Fra : trixster


Dato : 05-01-08 10:42

Tak for svaret natmaden.

Det stykke kode du gav, var det jeg kunne bruge til at få det sidste til at virke. Beklager at jeg var så sen til at lukke dette spørgsmål, men havde ærligt glemt det.

Men 1000 takker for alles hjælp..

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste