Skaterstu Posted September 17, 2007 Share Posted September 17, 2007 Hi Guys, I have been working on a photo gallery lately... done a couple of tutorials to help me understand how to upload, and resize thumbnails upon uploading... some of the stuff is pretty complicated but I am getting there in terms of my understanding. What I am trying to create is a back-end application whereby a person can go into their password protected area, click on the link 'Create a photo gallery' and then start uploading pics. But the thing is, all of the 'image gallery' tutorials I have looked at create one basic photo gallery with all of the photos contained within. I am designing a website for a mate who is travelling. I want him to be able to create a photo gallery for each new place that he visits. Therefore in his main photo page he will have different links to display different galleries of the places he has been to, which friends and family can select. I suspect that I need to do this using mysql. I have been using facebook a lot lately, and would like to create a similar style photo gallery. The user clicks on the 'create a gallery' link and then they are taken through to a page where they input the name of the Gallery and a brief description. Once they have clicked OK button then they are taken to a page where they can upload and add comments for each photo. Then once this has been done each different gallery is displayed on the website. This is what I am unclear about... how to do this. Would I need to create a few tables in MySQL, one for the gallery name (unique id, gallery_name, description), then another for the uploaded photo (photo_id, image, comment, gallery_id)? I'd be very grateful if someone could throw any ideas at me as to how I can do this. Many Thanks Stu Quote Link to comment https://forums.phpfreaks.com/topic/69697-trying-to-develop-a-php-photo-gallery/ Share on other sites More sharing options...
AdRock Posted September 17, 2007 Share Posted September 17, 2007 I have an image upload script that creates thumbnails and larger images. I can choose which gallery I would like them placed in. Really all the images are uplaoded to either a thumbnail directory or the large directory but the purpose of using the mysql database is to store the images names and which gallery they belong to. <?php $idir = "../images/gallery/full/"; // Path To Images Directory $tdir = "../images/gallery/thumbs/"; // Path To Thumbnails Directory $twidth = "100"; // Maximum Width For Thumbnail Images $theight = "75"; // Maximum Height For Thumbnail Images $ldir = "../images/gallery/large/"; // Path To Thumbnails Directory $lwidth = "400"; // Maximum Width For Thumbnail Images $lheight = "300"; // Maximum Height For Thumbnail Images $pic=($_FILES['imagefile']['name']); $gallery = $_POST['gallery']; if (!isset($_POST['gallery'])) { ?> <fieldset> <legend><b>Image Gallery Upload</b></legend> <form enctype="multipart/form-data" action="<? $_SERVER['PHP_SELF']; ?>" method="post"> <p style="margin-left:10px;">Gallery to upload to:<br /> <select name="gallery" size="1"> <option value="jack">Jack</option> <option value="honeylands">Honeylands</option> <option value="events">Events</option> <option value="art">Art Auction</option> </select> <p style="margin-left:10px;">Image to upload:<br /> <input type="file" name="imagefile" style="width:450px" /><br /> <P><input type="submit" name="submit" value="Upload Image" class="submit-button" style="margin-left:10px;" /></p> </form> </fieldset><br /> <?} else { // Uploading/Resizing Script $url = $_FILES['imagefile']['name']; // Set $url To Equal The Filename For Later Use if ($_FILES['imagefile']['type'] == "image/jpg" || $_FILES['imagefile']['type'] == "image/jpeg" || $_FILES['imagefile']['type'] == "image/pjpeg") { $file_ext = strrchr($_FILES['imagefile']['name'], '.'); // Get The File Extention In The Format Of , For Instance, .jpg, .gif or .php $copy = copy($_FILES['imagefile']['tmp_name'], "$idir" . $_FILES['imagefile']['name']); // Move Image From Temporary Location To Permanent Location if ($copy) { // If The Script Was Able To Copy The Image To It's Permanent Location print 'Image uploaded successfully.<br />'; // Was Able To Successfully Upload Image //insert the image names into the database include_once "../includes/connection.php"; $query = "INSERT INTO image VALUES ('','$pic','$pic','$gallery')"; mysql_query($query); mysql_close(); $simg = imagecreatefromjpeg("$idir" . $url); // Make A New Temporary Image To Create The Thumbanil From $currwidth = imagesx($simg); // Current Image Width $currheight = imagesy($simg); // Current Image Height if ($currheight > $currwidth) { // If Height Is Greater Than Width $zoom = $twidth / $currheight; // Length Ratio For Width $newheight = $theight; // Height Is Equal To Max Height $newwidth = $currwidth * $zoom; // Creates The New Width } else { // Otherwise, Assume Width Is Greater Than Height (Will Produce Same Result If Width Is Equal To Height) $zoom = $twidth / $currwidth; // Length Ratio For Height $newwidth = $twidth; // Width Is Equal To Max Width $newheight = $currheight * $zoom; // Creates The New Height } $dimg = imagecreate($newwidth, $newheight); // Make New Image For Thumbnail imagetruecolortopalette($simg, false, 256); // Create New Color Pallete $palsize = ImageColorsTotal($simg); for ($i = 0; $i < $palsize; $i++) { // Counting Colors In The Image $colors = ImageColorsForIndex($simg, $i); // Number Of Colors Used ImageColorAllocate($dimg, $colors['red'], $colors['green'], $colors['blue']); // Tell The Server What Colors This Image Will Use } imagecopyresized($dimg, $simg, 0, 0, 0, 0, $newwidth, $newheight, $currwidth, $currheight); // Copy Resized Image To The New Image (So We Can Save It) imagejpeg($dimg, "$tdir" . $url); // Saving The Image imagedestroy($simg); // Destroying The Temporary Image imagedestroy($dimg); // Destroying The Other Temporary Image print 'Image thumbnail created successfully.'; // Resize successful } else { print '<font color="#FF0000">ERROR: Unable to upload image.</font>'; // Error Message If Upload Failed } $simg = imagecreatefromjpeg("$idir" . $url); // Make A New Temporary Image To Create The Thumbanil From $currwidth = imagesx($simg); // Current Image Width $currheight = imagesy($simg); // Current Image Height if ($currheight > $currwidth) { // If Height Is Greater Than Width $zoom = $lwidth / $currheight; // Length Ratio For Width $newheight = $lheight; // Height Is Equal To Max Height $newwidth = $currwidth * $zoom; // Creates The New Width } else { // Otherwise, Assume Width Is Greater Than Height (Will Produce Same Result If Width Is Equal To Height) $zoom = $lwidth / $currwidth; // Length Ratio For Height $newwidth = $lwidth; // Width Is Equal To Max Width $newheight = $currheight * $zoom; // Creates The New Height } $dimg = imagecreate($newwidth, $newheight); // Make New Image For Thumbnail imagetruecolortopalette($simg, false, 256); // Create New Color Pallete $palsize = ImageColorsTotal($simg); for ($i = 0; $i < $palsize; $i++) { // Counting Colors In The Image $colors = ImageColorsForIndex($simg, $i); // Number Of Colors Used ImageColorAllocate($dimg, $colors['red'], $colors['green'], $colors['blue']); // Tell The Server What Colors This Image Will Use } imagecopyresized($dimg, $simg, 0, 0, 0, 0, $newwidth, $newheight, $currwidth, $currheight); // Copy Resized Image To The New Image (So We Can Save It) imagejpeg($dimg, "$ldir" . $url); // Saving The Image imagedestroy($simg); // Destroying The Temporary Image imagedestroy($dimg); // Destroying The Other Temporary Image print 'Image thumbnail created successfully.'; // Resize successful } else { print '<font color="#FF0000">ERROR: Unable to upload image.</font>'; // Error Message If Upload Failed } } ?> Quote Link to comment https://forums.phpfreaks.com/topic/69697-trying-to-develop-a-php-photo-gallery/#findComment-350186 Share on other sites More sharing options...
dbo Posted September 17, 2007 Share Posted September 17, 2007 This is ballpark of what you want for the database I think. user ----- id username password gallery --------- id name description photos ---------- id gallery_id thumb full user_gallery ----------- user_id gallery_id Quote Link to comment https://forums.phpfreaks.com/topic/69697-trying-to-develop-a-php-photo-gallery/#findComment-350198 Share on other sites More sharing options...
Skaterstu Posted September 18, 2007 Author Share Posted September 18, 2007 Ah, what a nice surprise... two replies so quickly. Thanks guys. I know that I have got to start learning more SQL as I will need to join tables (won't I?) to achieve what I want. I am pretty much a newbie at PHP, and need to find time to look more into SQL. But this info you have given me shows I am on the right lines. Am busy now but will post back about this later... thanks again, I can tell this forum is going to be very valueable to me. Cheers Stu Quote Link to comment https://forums.phpfreaks.com/topic/69697-trying-to-develop-a-php-photo-gallery/#findComment-350355 Share on other sites More sharing options...
Skaterstu Posted September 18, 2007 Author Share Posted September 18, 2007 This is ballpark of what you want for the database I think. user ----- id username password gallery --------- id name description photos ---------- id gallery_id thumb full user_gallery ----------- user_id gallery_id Alright dbo, I am a little confused. Why would I have user_id in the user_gallery. Wouldn't this table contain gallery_id and (photo)id? Cheers Stu Quote Link to comment https://forums.phpfreaks.com/topic/69697-trying-to-develop-a-php-photo-gallery/#findComment-350358 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.