php_beginner_83 Posted October 1, 2009 Share Posted October 1, 2009 Hi Everyone I'm working on a photo gallery for my website and it's driving me mental. I have code and it works perfectly when I pass it a directory on my computer, however, when I try and use the same code and read info from my database into it, it won't work. It will display the thumbnails and the first image but when I click on a thumbnail or the 'next' or 'previous' buttons it doesn't work. Can anyone tell me why this is??? I'm ready to break the computer at this point..but I know it's my fault...arghhh!! This is the code that works.... <?php $photoDir = "images"; $thumbDir = "thumbs"; $previousLinkText = "<"; $nextLinkText = ">"; $firstLinkText = "«"; $lastLinkText = "»"; $handle = opendir($photoDir); $counter = 0; $imagePath = array(); while($file = readdir($handle)) { // check $file is a directory if (!is_dir($file)) { // Set $imageSize $imageSize = getimagesize($photoDir . "/" . $file); // If it's an image... if ($imageSize[3] != "") { // put file name into array $imagePath[$counter] = $file; $counter++; } } } closedir($handle); $imgIndex = $_GET['image']; if (!isset($imagePath[$imgIndex])) { $imgIndex = 0; } echo "<div id=thumbs>\n"; // loop through array of images for($i=0; $i<sizeof($imagePath); $i++) { //$thumbSize = getimagesize($thumbDir . "/" . $imagePath[$i]); //$thumbWidth = $thumbSize[0]; //$thumbHeight = $thumbSize[1]; echo " <a href=\"?image=" . $i . "\">\n"; echo " <img src=\"" . $thumbDir . "/" . $imagePath[$i] . "\" alt=\"" . $imagePath[$i] . "\" />\n"; echo " </a>\n"; } echo "</div>"; echo " <div id=photo>"; if ($imgIndex == "0") { // display first image echo " <img src=\"" . $photoDir . "/" . $imagePath[$imgIndex] . "\" title=\"" . $imagePath[$imgIndex] . "\"/>\n"; } else { echo " <img src=\"" . $photoDir . "/" . $imagePath[$imgIndex] . "\" title=\"" . $imagePath[$imgIndex] . "\"/>\n"; echo "</div>"; } echo "<div id=notes>"; echo " <a href=\"?image=0\" title=\"First\">" . $firstLinkText . "</a>\n"; echo " <a href=\"?image="; if ($imgIndex > 0) echo ($imgIndex-1); else echo ($counter-1); echo "\" title=\"Previous\">" . $previousLinkText . "</a>\n"; echo " <a href=\"?image="; if ($imgIndex != sizeof($imagePath)-1) echo ($imgIndex+1); else echo "0"; echo "\" title=\"Next\">" . $nextLinkText . "</a>\n"; // Last image link echo " <a href=\"?image=" . ($counter-1) . "\" title=\"Last\">" . $lastLinkText . "</a>\n"; echo "</div>"; ?> THis is the code that doesn't work (I use this file as an include, would that make a difference??).. <?php ...code to connection to database... //arrays to hold the titles, descriptions and paths separately $desc = array(); $imagePat = array(); $previousLinkText = "<"; $nextLinkText = ">"; $firstLinkText = "«"; $lastLinkText = "»"; $cnt = 0; //fetch tha data from the database while ($row = mysql_fetch_array($result , MYSQL_NUM )) { $desc[$cnt] = $row[1]; $imagePath[$cnt] = substr(strrchr($row[2],92),1); $cnt++; } $imgIndex = $_GET['image']; if (!isset($imagePath[$imgIndex])) { $imgIndex = 0; } echo "<div id=thumbs>\n"; $thumbDir = "thumbs"; $photoDir = "images"; // loop through array of images for($i=0; $i<sizeof($imagePath); $i++) { echo " <a href=\"?image=" . $i . "\">\n"; echo " <img src=\"" . $thumbDir . "/" . $imagePath[$i] . "\" alt=\"" . $imagePath[$i] . "\" />\n"; echo " </a>\n"; } echo "</div>"; echo " <div id=photo>"; if ($imgIndex == "0") { // display first image echo " <img src=\"" . $photoDir . "/" . $imagePath[$imgIndex] . "\" title=\"" . $imagePath[$imgIndex] . "\"/>\n"; } else { echo " <img src=\"" . $photoDir . "/" . $imagePath[$imgIndex] . "\" title=\"" . $imagePath[$imgIndex] . "\"/>\n"; echo "</div>"; } echo "<div id=notes>"; echo " <a href=\"?image=0\" title=\"First\">" . $firstLinkText . "</a>\n"; echo " <a href=\"?image="; if ($imgIndex > 0) echo ($imgIndex-1); else echo ($cnt-1); echo "\" title=\"Previous\">" . $previousLinkText . "</a>\n"; echo " <a href=\"?image="; if ($imgIndex != sizeof($imagePath)-1) echo ($imgIndex+1); else echo "0"; echo "\" title=\"Next\">" . $nextLinkText . "</a>\n"; // Last image link echo " <a href=\"?image=" . ($cnt-1) . "\" title=\"Last\">" . $lastLinkText . "</a>\n"; echo "</div>"; ?> I'd really appreciate any help. Quote Link to comment https://forums.phpfreaks.com/topic/176138-image-gallery-works-when-reading-from-directory-but-not-from-databasewhy/ Share on other sites More sharing options...
sasa Posted October 1, 2009 Share Posted October 1, 2009 check this line $imagePath[$cnt] = substr(strrchr($row[2],92),1); try to print_r($imagePath); Quote Link to comment https://forums.phpfreaks.com/topic/176138-image-gallery-works-when-reading-from-directory-but-not-from-databasewhy/#findComment-928172 Share on other sites More sharing options...
php_beginner_83 Posted October 1, 2009 Author Share Posted October 1, 2009 This is the output I get when I print_r($imagePath)..... Array ( [0] => alcatraz1.jpg [1] => alcatraz2.jpg [2] => alcatraz3.jpg [3] => alcatraz4.jpg [4] => alcatraz5.jpg [5] => alcatraz6.jpg [6] => alcatraz7.jpg [7] => alcatraz8.jpg [8] => alcatraz9.jpg [9] => alcatraz10.jpg [10] => alcatraz11.jpg [11] => alcatraz12.jpg [12] => alcatraz13.jpg [13] => alcatraz14.jpg [14] => alcatraz15.jpg ) Quote Link to comment https://forums.phpfreaks.com/topic/176138-image-gallery-works-when-reading-from-directory-but-not-from-databasewhy/#findComment-928569 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.