benrussellvick Posted May 6, 2013 Share Posted May 6, 2013 I'm trying to create a random image script that selects from an existing list of different users images within a database but i'm having no luck. Anyone knows of a way to do it? Here's the code... 'rnprofile.php' if (isset($_FILES["image"]["name"])) { $TempFile = $_FILES["image"]["tmp_name"]; $FolderName = 'images/'; // Setting the upload directory $CurrentTime = time(); // Time of upload (UNIX) $Filename = $user."_".$CurrentTime.".jpg"; // Filename of the file $saveto = $FolderName.$Filename; // Will look something like"images/alex_1365249148.jpg" //First debug //echo "DEBUG ECHO:<br/>We're uploading the file named: ".$Filename."<br/>And we're putting it into: ".$saveto."<br/>END DEBUG ECHO"; //exit(); move_uploaded_file($_FILES["image"]["tmp_name"], $saveto); $typeok = TRUE; switch($_FILES["image"]["type"]) { case "image/gif": $src = imagecreatefromgif($saveto); break; case "image/jpeg": // Both regular and progressive jpegs case "image/pjpeg": $src = imagecreatefromjpeg($saveto); break; case "image/png": $src = imagecreatefrompng($saveto); break; default: $typeok = FALSE; break; } if ($typeok) { list($w, $h) = getimagesize($saveto); $max = 600; $tw = $w; $th = $h; if ($w > $h && $max < $w) { $th = $max / $w * $h; $tw = $max; } elseif ($h > $w && $max < $h) { $tw = $max / $h * $w; $th = $max; } elseif ($max < $w) { $tw = $th = $max; } $tmp = imagecreatetruecolor($tw, $th); imagecopyresampled($tmp, $src, 0, 0, 0, 0, $tw, $th, $w, $h); imageconvolution($tmp, array( // Sharpen image array(-1, -1, -1), array(-1, 16, -1), array(-1, -1, -1) ), 8, 0); imagejpeg($tmp, $saveto); log_image_upload($UserData['user_id'], $Filename, $saveto, $CurrentTime); // Logging the image upload into MySQL imagedestroy($tmp); imagedestroy($src); } } echo <<<_END <form method='post' action='rnprofile.php' enctype='multipart/form-data'> </br> <h3>Upload your designs here:</h3><br /> Image: <input type='file' name='image' size='14' maxlength='32' /> <input type='submit' value='Upload design' /> </pre></form> _END; 'rnfunctions.php'... function log_image_upload($UserID, $Filename, $Location, $Time) { //add in sanitization code in here for all variables being parsed. mysql_query("INSERT INTO `images` (`user_id`, `location`, `filename`, `time`) VALUES ('$UserID', '$Location', '$Filename', '$Time')"); } function showProfile($user) { //$UserID = mysql_result(mysql_query("SELECT `user_id` FROM `rnprofiles` WHERE `user` = '$user'"), 0) or die(mysql_error()); $result=mysql_query("SELECT `user_id` FROM `rnprofiles` WHERE `user` = '$user'") or die(mysql_error()); if(mysql_num_rows($result) or die(mysql_error())) { while($row = mysql_fetch_assoc($result)) { $UserID = $row['user_id']; } } else { echo "no rows found"; } $Query = mysql_query("SELECT * FROM `images` WHERE `user_id` = '$UserID'") or die(mysql_error()); while ($ImageData = mysql_fetch_assoc($Query)) { echo '<p><a title="'.$user.'" class="fancybox" data-fancybox-group="gallery" href="'.$ImageData['location'].'"><img src="'.$ImageData['location'].'" border="1px" align="left" height="150" alt=""/></a></p>';// Display each image belonging to the user } $result = mysql_query("SELECT * FROM rnprofiles WHERE user='$user'") or die(mysql_error()); if (mysql_num_rows($result)) { $row = mysql_fetch_row($result); echo stripslashes($row[8]) . "<a><br clear=left /><br /></a>"; } } Thanks a lot in advance! Quote Link to comment https://forums.phpfreaks.com/topic/277698-generate-random-image-from-database-php/ Share on other sites More sharing options...
MarPlo Posted May 6, 2013 Share Posted May 6, 2013 HI Try use the mysql rand() function: SELECT * FROM `table` ORDER BY RAND() LIMIT 0,1;Or look on the net for "mysql random", you'll find some good solutions. Quote Link to comment https://forums.phpfreaks.com/topic/277698-generate-random-image-from-database-php/#findComment-1428600 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.