webForumDet fria alternativet

Foto bläddrare

PHP

2 svar · 416 visningar · startad av dreas

Medlem sedan jan. 2004140 inlägg
Frågan#1

Hey!
Håller på med en sida där jag laddar upp foton via ett script som även skapar thumbnails. Dessa foton placeras i olika grupper/händelser som skrivs in i databasen.

Jag är i färd med att presentera fotona och även stora bilden som thumbnailsen länkar till. So far so good. När jag nu vill skapa ett script att bläddra bland dessa foton (dvs "Föregående/Nästa" på den sida där den stora bilden visas).

Jag har hittat en hel del scripts här, fått många att fungera dock inte på det sätt jag vill. Det verkar nämligen som att merparten av de script som finns söker igenom fotona i katalogen, och inte igenom databasen. I och med att jag _måste_ kunna sortera efter PlaceID (grupp/händelse), så måste jag även generera scriptet igenom databasen då PlaceID inte finns i filnamnet.

Skickar med lite kod:

<?php 
  
  $getAT = $_REQUEST['AT'];
  $getID = $_REQUEST['ID'];
 
// Räkna antal poster efter PlaceID
$rakna = mysql_query("SELECT COUNT(*) AS cntAntal FROM photo WHERE PlaceId=$getAT", $connect);
$row = mysql_fetch_array($rakna);

$antal = $row['cntAntal'];

echo "Det finns " . $row['cntAntal'] . " filmer.";

  
$query = "SELECT * FROM photo WHERE placeID=$getAT";	
$result = mysql_query($query) or die("Query failed : " . mysql_error() . " when executing " . $result);

Har testat följande script, och fått det att fungera dock utan de villkor jag skrivit ovan i och med att denna läser in bildfilerna direkt

<?php

$ID = 3;
if (isset($_REQUEST["ID"])) $ID = intval($_REQUEST["ID"]);

$way = $_GET['way'];
$type.="&way";
$fil= $ID."_large.jpg";

while(!file_exists($fil) and $ID>=3 and $ID<=24){ 
$ID=$ID+$way;
$fil="./pics/bilder/" .$ID."_large.jpg";
}

$type="<img src=" .$fil ."><br><br>";

if($ID>3) {
$type.="<a href=fotoView.php?ID=";
$type.=$ID-1;
$type.="&way=-1>Förra</a>    ";
}

if($ID<24) {
$type.="<a href=fotoView.php?ID=";
$type.=$ID+1;
$type.="&way=1>Nästa</a>    ";
}

echo($type);

?>

ID värdena sattes för att testa.

Finns det något sätt att modifiera scriptet så att den läser från databasen istället, eller vet någon ett script som direkt gör detta?

Nu blev det sådär vansinnigt långt igen :)

/Andreas

Medlem sedan mars 2001148 inlägg
#2

Skall du inte "bara" istället plocka från databasen, som du gör, och där har du kanske filnamn till bilderna, och presentera dem?

Medlem sedan jan. 2004140 inlägg
#3

Jo, är så tanken är. Fast problemet är att jag inte har någon aning om hur jag förflyttar mig i databasen. Tänkte använda mig av ovanstående kod, fast göra om den till att läsa av från databasen och inte från filerna.
Alltså använda mig av den här $way funktionen, kolla ifall det är -1 eller +1 till ID.

Har trixat lite.. men det fungerar inte som det ska. Den läser fortfarande från katalogen, och alltså inte från databasen.
Förra och nästa verkar uppfyllas på rätt sätt, så vitt jag vet.

    <?php 
  
  $getAT = $_REQUEST['AT'];
  $getID = $_REQUEST['ID'];
 
// Räkna antal poster efter PlaceID
$rakna = mysql_query("SELECT COUNT(*) AS cntAntal FROM photo WHERE PlaceId=$getAT", $connect);
$row = mysql_fetch_array($rakna);
$antal = $row['cntAntal'];
  
$query = "SELECT * FROM photo WHERE ID=$getID";	
$result = mysql_query($query) or die("Query failed : " . mysql_error() . " when executing " . $result);
$rad = mysql_fetch_array($result)

// Bildväljare
$ID = 1;
if (isset($_REQUEST["ID"])) $ID = intval($_REQUEST["ID"]);

$way = $_GET['way'];
$type.="&way";

//$fil= $ID."_large.jpg";
$fil= "pics/bilder/" .$getID. "_large" .print($rad["Photo"]); 

while(!$ID>=1 and $ID<=$antal){ 
$ID=$ID+$way;
}

$type="<img src=" .$fil ."><br><br>";
//$type="<img src="pics/bilder/" .$getID. "_large" .print($rad["Photo"]). "><br><br>";

if($ID>1) {
$type.="<a href=fotoView.php?AT=". $getAT ."&ID=";
$type.=$ID-1;
$type.="&way=-1>Förra</a>    ";
}

if($ID<$antal) {
$type.="<a href=fotoView.php?AT=". $getAT ."&ID=";
$type.=$ID+1;
$type.="&way=1>Nästa</a>    ";
}

echo($type);

?>

Den är rätt stökig, när jag sitter o knåpar ihop lite själv blir det oftast så ;)

Tacksam för all hjälp!

256 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)