Avatar billede Milla-Tigerdyr Praktikant
21. september 2011 - 15:13 Der er 11 kommentarer og
1 løsning

Få den til at skifte billedet

Jeg har i min database "heste" 3 felter til billedernes URL-adresse (og har billederne liggende på min ftp. server)
Men altså jeg vil gerne have en kode, der gør at hvis hesten er under 2 år, så viser den billede 1, hvis den er 2-4 år viser den billede 2, og hvis den er over 4, viser den billede 3 :)

Er der nogen der har en ide til hvordan jeg gør det? Det skal helst kunne sættes ind i en kode som denne;

<?php
session_start();
include("functions.php");
error_reporting(E_ALL);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<link href="style.css" rel="stylesheet" type="text/css">
<?
$userid = $_SESSION['userid'];
if(!is_numeric($userid)) { die('Af sikkerhedsmæssige årsager er siden stoppet i at loade. Kontakt webmaster hvis fejlen fortsætte'); exit(); }
?>
<br>
<center><b><h2>ALLE HESTE:</h2></b></center><br>
<br>
<br>
<br>
<?
$result = mysql_query("SELECT *, FLOOR(DATEDIFF(now(), born) / 30) AS alder FROM heste")
or die(mysql_error());

while ($row = mysql_fetch_assoc($result)){

echo '
<br>
<br>
<img src='.$row['billede'].' ><br>
<b>ID:</B> '.$row['id'].'</h2><br>
<b>Navn:</b> '.$row['navn'].'<br>
<b>Ejer:</b> '.$row['ejer'].'<br>
<b>Race:</b> '.$row['race'].'<br>
<b>Alder:</b>'.$row['alder'].'<br>
<b>Køn:</b> '.$row['kon'].'<br>
<b>Avl:</b> '.$row['avl'].'<br>
<b>Træning:</b> '.$row['skills'].'%<br>
<b>Niveau:</b> '.$row['niveau'].'<br>
<b>Tegnet af </b> '.$row['tegner'].'<br>
<b>Født den </b> '.$row['born'].'<br>
<a href="beskrivelse.php?id= '.$row['id'].' ">Se beskrivelsen</a>
<br>
<br>
';
}
?>
<? include("footer.php")?>

Der hvor der så nu står "<img src='.$row['billede'].' ><br>" tænkte jeg på, at der måske skulle være en if sætning.. eller hvad? jeg er ikke helt sikker.

Håber i kan hjælpe :D
Avatar billede Fnugus Nybegynder
21. september 2011 - 15:23 #1
Du kan sagtens checke det med en if..

$img = 'billede1';
if($row['alder'] >= 2)
  $img = 'billede2';
if($row['alder'] >= 4)
  $img = 'billede3';

Der hvor jeg tror der er noget galt, dog, er at det lader til at du har gemt et billede i samme tabel som resten af dataen for den enkelte hest?
Avatar billede Milla-Tigerdyr Praktikant
21. september 2011 - 15:26 #2
Tak :D

- Altså ja, men jeg har kun gemt URL'en på billedet..må man da ikke det? Altså gemme en URL adresse, til et billede?
Avatar billede Milla-Tigerdyr Praktikant
21. september 2011 - 15:35 #3
Men hvordan skal jeg sætte den ind? Fordi hvis jeg sætter den ind der hvor billedet var før, viser den blank side :/
Avatar billede Fnugus Nybegynder
21. september 2011 - 15:43 #4
Du kan sagtens gemme en URL i databasen, intet problem i det. Det er blot at du kun gemmer éen url, men snakker om 3.

Kan du fortælle hvad du har stående i $row['billede'] mere præcist? Det ville gøre det lidt nemmere at hjælpe :)
Avatar billede Milla-Tigerdyr Praktikant
21. september 2011 - 15:46 #5
I billede der har jeg jo bare url-adressen, som f.eks kunne være; http://www.waterhorses.yup.dk/waterhorses/alga/etnavn.png
Avatar billede Fnugus Nybegynder
21. september 2011 - 15:57 #6
Okay.. Hvad med url til de andre billeder?

En umiddelbar løsning kan enten være at du i databasen har

$row['billede1']
$row['billede2']
$row['billede3']

men det er besværligt.

Hvis du har url-adresserne i en anden tabel, kan du lave et tabelopslag og finde det på den måde.

Hvis det er en generel url til de 3 billeder, hvor eneste forskel er et tal, kan du evt. sætte et nyt efternavn ind, for eksempel, hvis du i 'billede' har "http://(...)/billede" kan du gøre flg.:

$img = $row['billede']
if($row['alder'] < 2)
  $img .= '1.png';
if($row['alder'] >= 2)
  $img .= '2.png';
if($row['alder'] >= 4)
  $img = '3.png';

og så udskrive det med

echo '<img src="'.$img.'" /><br>';
Avatar billede Milla-Tigerdyr Praktikant
21. september 2011 - 16:03 #7
Problemet er, at navnet på billedet, er navnet på hvem der har tegnet hesten..så tror det ville lave kage i mit system at sætte et tal bagved :S

Fordi det kan være at link et ser sådan ud: waterhorses/alga/tegnernavn.png
og link to sådan: waterhorses/alga/jegersej.png
osv.
Avatar billede Fnugus Nybegynder
21. september 2011 - 16:07 #8
Okay, men hvor har du gemt de andre url'er?
Avatar billede Milla-Tigerdyr Praktikant
21. september 2011 - 16:10 #9
I databasen, jeg har jo en kolonne der hedder billede og en der hedder billede2 og en der hedder billede3 :)
Avatar billede Fnugus Nybegynder
21. september 2011 - 16:19 #10
Okay, super, det var lige det jeg ville have på plads!

Så kan du ændre din echo kode som flg.:

echo '
<br>
<br>
<img src=';

$img = $row['billede'];
if($row['alder] >= 2)
  $img = $row['billede2'];
if($row['alder'] >= 4)
  $img = $row['billede3'];
echo $img;

echo' ><br>
<b>ID:</B> '.$row['id'].'</h2><br>
<b>Navn:</b> '.$row['navn'].'<br>
<b>Ejer:</b> '.$row['ejer'].'<br>
<b>Race:</b> '.$row['race'].'<br>
<b>Alder:</b>'.$row['alder'].'<br>
<b>Køn:</b> '.$row['kon'].'<br>
<b>Avl:</b> '.$row['avl'].'<br>
<b>Træning:</b> '.$row['skills'].'%<br>
<b>Niveau:</b> '.$row['niveau'].'<br>
<b>Tegnet af </b> '.$row['tegner'].'<br>
<b>Født den </b> '.$row['born'].'<br>
<a href="beskrivelse.php?id= '.$row['id'].' ">Se beskrivelsen</a>
<br>
<br>
';
Avatar billede Milla-Tigerdyr Praktikant
21. september 2011 - 16:21 #11
Det vil den åbenbart ikke, den viser blank side :S
Avatar billede Fnugus Nybegynder
21. september 2011 - 16:45 #12
if($row['alder] >= 2)
skulle have været
if($row['alder'] >= 2)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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