Någon som kan hitta felet i dessa två alternativ:
// ALT 1
if ($rad['urlbild'] || $rad['kon'] == 'Man')
{
echo "<img src='images/saknas_kille.jpg' height='150'>";
}
elseif ($rad['urlbild'] || $rad['kon'] == 'Kvinna')
{
echo "<img src='images/saknas_tjej.jpg' height='150'>";
}
elseif ($rad['urlbild'])
{
echo "<img src=uploads/". $rad['urlbild']." height='150'>";
}
//
// ALT 2
if ($rad["urlbild"] || $rad['kon'] == 'Man') $bild = "<img src='images/saknas_kille.jpg' height='150'>";
elseif ($rad["urlbild"] || $rad['kon'] == 'Kvinna') $bild = "<img src='images/saknas_tjej.jpg' height='150'>";
elseif ($rad["urlbild"]) $bild = "<img src=uploads/". $rad['urlbild']." height='150'>";
//
Jag försöker alltså visa en bild på en tjej/kille beroende på vad det har valt för kön i profilen, om bild saknas. Jag lyckas endast få fram bilden på killen hela tiden.
Ok, jag har aldrig programmerat något i php överhuvudtaget, så jag kommer bara med lite grejer som ser konstigt ut enligt min begränsade programmeringserfarenhet. :)
Jag vet inte vad $rad["urlbild"] returnerar men antar att det är true eller false och
du vill ju ha specialbild om det INTE är valt nån bild, borde det då inte vara ! $rad["urlbild"], alltså utropstecken först, som betyder INTE.
Sen tycker jag också att det ser konstigt ut med ||.
Betyder inte || eller? Det borde ju vara och, alltså &&.
Om mina förslag är värda något överhuvudtaget hamnar vi alltså på nåt sånt här.
if (! $rad["urlbild"] && $rad['kon'] == 'Man') $bild = "<img src='images/saknas_kille.jpg' height='150'>";
elseif (! $rad["urlbild"] && $rad['kon'] == 'Kvinna') $bild = "<img src='images/saknas_tjej.jpg' height='150'>";
elseif ($rad["urlbild"]) $bild = "<img src=uploads/". $rad['urlbild']." height='150'>";
Men som sagt jag har ingen aning om det här.
andyoumaydie skrev:
Ok, jag har aldrig programmerat något i php överhuvudtaget, så jag kommer bara med lite grejer som ser konstigt ut enligt min begränsade programmeringserfarenhet. :)
Jag vet inte vad $rad["urlbild"] returnerar men antar att det är true eller false och
du vill ju ha specialbild om det INTE är valt nån bild, borde det då inte vara ! $rad["urlbild"], alltså utropstecken först, som betyder INTE.
Sen tycker jag också att det ser konstigt ut med ||.
Betyder inte || eller? Det borde ju vara och, alltså &&.
Om mina förslag är värda något överhuvudtaget hamnar vi alltså på nåt sånt här.
if (! $rad["urlbild"] && $rad['kon'] == 'Man') $bild = "<img src='images/saknas_kille.jpg' height='150'>";
elseif (! $rad["urlbild"] && $rad['kon'] == 'Kvinna') $bild = "<img src='images/saknas_tjej.jpg' height='150'>";
elseif ($rad["urlbild"]) $bild = "<img src=uploads/". $rad['urlbild']." height='150'>";
Men som sagt jag har ingen aning om det här.
Verkar fungera nu, tack för hjälpen.
Angående "||", så har jag kunnat använda detta tidigare utan problem.
Fint att det fungerar :)
Guldstrand skrev:
Angående "||", så har jag kunnat använda detta tidigare utan problem.
Om vi jämför de olika raderna.
Med "||":
if ($rad["urlbild"] || $rad['kon'] == 'Man') $bild = "<img src='images/saknas_kille.jpg' height='150'>";
Ger: OM $rad["urlbild"] är sann ELLER $rad['kon'] är 'Man' så är $bild = 'saknas_kille'.
Alltså, om användaren valt en bild eller är en man så visas bilden 'saknas_kille'. Och det är ju fel, för har han valt bild så ska ju den visas.
Med ! och &&;
if (! $rad["urlbild"] && $rad['kon'] == 'Man') $bild = "<img src='images/saknas_kille.jpg' height='150'>";
Ger: OM INTE $rad["urlbild"] är sann OCH $rad['kon'] är 'Man' så är $bild = 'saknas_kille'.
Dvs har användaren inte valt en bild och är en man så skall 'saknas_kille' bilden visas, och det är riktigt.
Men sen hade du ju kunnat förenkla hela frågesatsen till:
if ($rad["urlbild"]) $bild = "<img src=uploads/". $rad['urlbild']." height='150'>";
elseif ($rad['kon'] == 'Man') $bild = "<img src='images/saknas_kille.jpg' height='150'>";
else $bild = "<img src='images/saknas_tjej.jpg' height='150'>";
Vilket borde ge samma utfall fast med mindre och lättare kod.
Aha, då förstår jag bättre.
Tack för infon.