Avatar billede find_p Nybegynder
06. februar 2010 - 20:21 Der er 4 kommentarer og
1 løsning

Hjælp til vise billedetitel i galleri

Kan nogen hjælpe mig med at få ændret original kode, som ikke bruger database så jeg får vist beskrivelse (titel).

Hele koden:

<?php

$bibliotek = "Grafik/Billeder";

$width_main = "400px";
$miniheight = "100px";

$nr = $_GET["nr"];

include 'config.php';

$db = mysql_connect($mysql['host'],$mysql['user'],$mysql['password']);
mysql_select_db($mysql['db'], $db);

$sql="select billede,titel,stilart,id from malerier WHERE stilart = 'portræt' order by id Desc";
    $result=mysql_query($sql,$db) or die (mysql_error());
    $empty1="";
    while ($myrow = mysql_fetch_assoc($result))
    {
      $fotos[]=$myrow["billede"];
      $billedeinfo=$myrow["titel"];


// Herunder original kode (som ikke bruger database) for beskrivelse (titel)

if(file_exists($bibliotek."/beskrivelser.txt")) {
    $billedeinfo = array();
    $billedeinfo = file($bibliotek."/beskrivelser.txt");
    sort($billedeinfo);
    $beskrivelse = explode(";", $billedeinfo[$nr]);
}

}

//echo ($billedeinfo);

// Looper igennem $fotos og fjerner "small_" så der kan linkes til den store
// version af billederne
for ($i=0; $i<count($fotos); $i++) {
    $fotos_stor[] = preg_replace("/small_/i", '', $fotos[$i]);
}

// Sorterer arrayene med billeder
sort($fotos);
sort($fotos_stor);

// Antal billeder i Tabel / biblioteket
$antal = count($fotos);

// Vis første billede ved reload
if(!$nr || $nr == $antal || $nr > $antal) {
    $nr = 0;
}

// Inkrementer for hvert klik på næste-knappen
$naeste = $nr + 1;

// Sæt det forrige billedes index
if($nr == 0) {
    $forrige = $antal - 1;
} else {
    $forrige = $nr - 1;
}

// Opbygger container med miniaturer

{
    $mini = "<div id=\"slide-mini\"><table align=\"left\"><tr><br>";
 
    for ($i=0; $i<count($fotos); $i++) {
    if(($i % 4) == 0){
        $mini .= "</tr><tr>";
        }
$mini .= "<td><a href=\"?nr=".$i."\" title=\"Klik og vis\">".
            "<img src=\"$bibliotek/".$fotos[$i]."\" alt=\"Klik og vis\"".
            " style=\"height:$miniheight;\"/></a></td>";
    }
 
    $mini .= "<tr></table></div>";
}

print <<<END
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Portræt</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>

<body topmargin="0">

<table width="1055" height ="800" border="0" align="center">
<tr><td valign="top">

<p align="center" class="overskrift_stilart">Portræt</p>

$mini

<table  align="right"class="slide-table" style="width:$width_main;">
    <tr>
        <td colspan="3" align="center">$beskrivelse[1]</td>
    </tr>
    <tr>
        <td colspan="3">
        <a><img src="$bibliotek/$fotos_stor[$nr]" class="slide-main-img"
        style="width:$width_main;" /></a></td>
    </tr>
    <tr>
        <td><a href="?nr=$forrige">&laquo; Tilbage</a></td>
        <td valign="bottom">($naeste af $antal)</td>
        <td align="right"><a href="?nr=$naeste">Frem &raquo;</a></td>
    </tr>
</table>

</body>
</html>
END;
?>
Avatar billede majbom Novice
06. februar 2010 - 20:32 #1
hvordan relaterer billederne til dine db-rækker?
Avatar billede find_p Nybegynder
06. februar 2010 - 20:46 #2
Godaften splazz

Er ikke helt sikker på hvad du mener

Tabellen indeholer følgende:

CREATE TABLE malerier (
  id int(11) NOT NULL auto_increment,
  titel varchar(255) default NULL,
  stilart varchar(255) default NULL,
  billede varchar(255) default NULL,
 
  PRIMARY KEY  (id)
) ENGINE=MyISAM

Hvor feltet billede inderholder:

small_billede.jpg
billede.jpg

Håber at dette giver svar på dit spørgsmål
Avatar billede majbom Novice
07. februar 2010 - 08:30 #3
hvis forskellen på de to billeder altid er "small_" er der vel ingen grund til at have et array med både "small_billede" og "billede", så kan du bare smide "small_" foran nå du skal udskrive thumbnails.

jeg ved godt det ikke er svar på dit spørgsmål, men jeg synes din kode virker meget omstændig i forhold til hvad det ser ud til den laver.
Avatar billede find_p Nybegynder
07. februar 2010 - 09:59 #4
Selve billede visningen virker efter hensigten med ovenstående kode. Det kan uden tvivl laves mere simpelt, det har jeg dog ikke erfaring nok til.

Original koden kommer fra http://www.dunweber.com/docs/scripts/kildekoder/slideshow.source.php
som jeg så har forsøgt at "simplificere" til mit behov og gøre den databasebaseret.

Du kan se resultatet af ovenstående kode her (forsøgsside)

http://www.find-p.dk/galleri.php

Dog har jeg rettet

<snip>
<table  align="right"class="slide-table" style="width:$width_main;">
    <tr>
        <td colspan="3" align="center">$beskrivelse[1]</td>
    </tr>
    <tr>
        <td colspan="3">
        <a><img src="$bibliotek/$fotos_stor[$nr]" class="slide-main-img"
        style="width:$width_main;" /></a></td>
    </tr>

til:

<table  align="right"class="slide-table" style="width:$width_main;">
    <tr>
        <td colspan="3" align="center">$billedeinfo</td>
    </tr>
    <tr>
        <td colspan="3">
        <a><img src="$bibliotek/$fotos_stor[$nr]" class="slide-main-img"
        style="width:$width_main;" /></a></td>
    </tr>

således at titlen for billede 1 (Titel 1) vises.

Håber at dette giver mening
Avatar billede find_p Nybegynder
13. februar 2010 - 10:15 #5
- LUKKER -
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