Я пытаюсь отобразить последние 5 изображений, загруженных в таблицу «store» в MySql. Я полный noob для PHP и баз данных, и я много читал о том, как это сделать, но не повезло.
Я могу хранить и отображать фотографии по одному, но я хотел бы иметь галерею, чтобы показать последние 5 загруженных.
любой совет или помощь были бы очень благодарны спасибо!
ps Я знаю, что он нахмурился, чтобы хранить фотографии в такой базе данных, но этот проект предназначен только для практики.
index.php
<!DOCTYPE html> <html> <head> <title>Project One</title> </head> <body> <form action="index.php" method="POST" enctype="multipart/form-data"> File: <input type="file" name="image"> <input type="submit" value="Upload"> <form> <p /> <?php //connect to database (connect to server) (select correct DB) //file properties $file = $_FILES['image']['tmp_name']; if (!isset($file)) echo "please select an image."; else { $image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); $image_name = $_FILES['image']['name']; $image_size = getimagesize($_FILES['image']['tmp_name']); if($image_size==FALSE) echo "That's not an image."; else { if (!$insert = mysql_query("INSERT INTO store VALUES ('', '$image_name', '$image')")) echo "Problem Uploading Image."; else { $lastid = mysql_insert_id(); echo "Image uploaded. <p />Your image:<p /><img src=get.php?id=$lastid>"; } } } ?> <p /> <p /> <a href="http://WEBSITE.com/gallery.php"> Go to Gallery </a> </body> </html>
get.php
<?php //connect to database (connect to server) (select correct DB) $id = addslashes($_REQUEST['id']); $image = mysql_query("SELECT * FROM store WHERE id=$id"); $image = mysql_fetch_assoc($image); $image = $image['image']; header("Content-type: image/jpeg"); echo $image; ?>
Это то, что я использовал, когда хотел сделать что-то подобное … давным-давно! = Р
$sql = "SELECT image FROM table WHERE cond ORDER BY xxxx DESC LIMIT 5"; $result = mysqli_query($db,$sql); while($arraySomething = mysqli_fetch_array($result)) { echo "<img src='php/imgView.php?imgId=".$arraySomething."' />"; }
Я пытаюсь использовать первый подход с header('content-type: image/jpeg');
но в конечном итоге изображение не показано. После нескольких google через веб-сайт я нашел решение, которое я могу отображать из базы данных на мою страницу
попробуй это:
mysql_connect("localhost","root","")or die("Cannot connect to database"); //keep your db name mysql_select_db("example_db") or die("Cannot select database"); $sql = "SELECT * FROM `article` where `id` = 56"; // manipulate id ok $sth = mysql_query($sql); $result=mysql_fetch_array($sth); // this is code to display echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image_file'] ).'"/>'
mysql_connect("localhost","root","")or die("Cannot connect to database"); //keep your db name mysql_select_db("example_db") or die("Cannot select database"); $sql = "SELECT * FROM `article` where `id` = 56"; // manipulate id ok $sth = mysql_query($sql); $result=mysql_fetch_array($sth); // this is code to display echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image_file'] ).'"/> width="xxxx" height="xxxx"';
Добавьте высоту и ширину