---
title: "Problem med att visa rätt bild"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/165224-problem-med-att-visa-rätt-bild"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Guldstrand"
published: "2007-10-07T03:49:28.000Z"
updated: "2007-10-08T12:24:41.000Z"
replies: 4
views: 531
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/165224-problem-med-att-visa-rätt-bild"
---

# Problem med att visa rätt bild

## #1 — Guldstrand, 2007-10-07T03:49Z

Någon som kan hitta felet i dessa två alternativ:

```php
// 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.

Permalänk: https://www.webforum.nu/p/165224

## #2 — andyoumaydie, 2007-10-07T04:32Z

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.

```php
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.

Permalänk: https://www.webforum.nu/p/2036964

## #3 — Guldstrand, 2007-10-07T16:35Z

> **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.
>
>
> ```php
> 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.

Permalänk: https://www.webforum.nu/p/2037037

## #4 — andyoumaydie, 2007-10-08T06:32Z

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 "\|\|":

```php
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 &&;

```php
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:

```php
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.

Permalänk: https://www.webforum.nu/p/2037149

## #5 — Guldstrand, 2007-10-08T12:24Z

Aha, då förstår jag bättre.
Tack för infon.

Permalänk: https://www.webforum.nu/p/2037226

---

Tråden på webben: https://www.webforum.nu/amne/php/165224-problem-med-att-visa-rätt-bild
