2012-11-03 8 views
6

मैं MySQL में "स्टोर" तालिका में अपलोड की गई अंतिम 5 छवियों को प्रदर्शित करने का प्रयास कर रहा हूं। मैं PHP और डेटाबेस के लिए एक पूर्ण नोब हूं और मैं यह कैसे करना है, लेकिन कोई किस्मत पर बहुत कुछ पढ़ रहा हूं।MySQL डेटाबेस में संग्रहीत एक BLOB छवि को कैसे प्रदर्शित करें?

मैं एक समय में चित्रों को स्टोर और प्रदर्शित कर सकता हूं लेकिन मैं आखिरी 5 अपलोड करने के लिए एक प्रकार की गैलरी प्राप्त करने में सक्षम होना चाहता हूं।

कोई सलाह या मदद की बहुत सराहना की जाएगी धन्यवाद!

पेज। मुझे पता है कि इस तरह के डेटाबेस में चित्रों को स्टोर करने के लिए यह डूब गया है लेकिन यह परियोजना सिर्फ अभ्यास के लिए है।

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; 

?> 
+0

चेक इस जोड़े : http://stackoverflow.com/questions/118144/whats-the-most- कुशल-way-to-select-the-last-n-rows-in-a-table-without-chang – Vucko

उत्तर

6

यह वही इस्तेमाल किया जब मैं उस तरह कुछ करना चाहता था है ... एक लंबे समय पहले! = P

$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."' />"; 
} 
+0

और क्या है उस से? मैंने इसे जोड़ने की कोशिश की और यह एक टूटी हुई छवि प्रिंट करता है ... मुझे लूप बनाने के बारे में कैसे जाना चाहिए जो प्रत्येक चित्र को पंक्ति के अधिकतम मूल्य से नीचे गिना जाएगा? 1..5 पाश 'max_id साथ प्रिंट छवि' तो max_id से decrements ... उन पंक्तियों मैं बस आपको दिखाया जा रहा था कि कैसे एक जोड़ने के लिए – Ktmock13

+0

मेरे उदाहरण प्रत्यक्ष कॉपी/पेस्ट के लिए नहीं था साथ कुछ के लिए। आप क्या कर सकते हैं मूल रूप से आपकी क्वेरी में 5 की एक सीमा जोड़ते हैं और इसे अंतिम 5 दिखाने के लिए ऑर्डर करते हैं। फिर कुछ ऐसा करें: $ sql = "तालिका से चुनें * जहां LIMIT 5 है"; $ परिणाम = mysqli_query ($ db, $ sql); जबकि ($ arraySomething = mysqli_fetch_array ($ परिणाम)) { // echo img } – Manatax

5

मैं header('content-type: image/jpeg'); के साथ पहले तरीके का प्रयास करें, लेकिन नहीं दिखाया छवि के साथ खत्म। वेबसाइट के माध्यम से कुछ गूगल बाद मैं समाधान जो मैं अपने पेज

को डेटाबेस से छवि प्रदर्शित कर सकते हैं पाया इस प्रयास करें:

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']).'"/>' 
+0

चेतावनी mysql_query PHP 5.5.0 में बहिष्कृत किया गया था, और इसे PHP 7.0.0 में हटा दिया गया था। इसके बजाय, MySQLi या PDO_MySQL एक्सटेंशन का उपयोग किया जाना चाहिए। – Manatax

1
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"'; 

ऊंचाई और चौड़ाई भी

+0

चेतावनी mysql_query को PHP 5.5.0 में बहिष्कृत किया गया था, और इसे PHP 7.0.0 में हटा दिया गया था। इसके बजाय, MySQLi या PDO_MySQL एक्सटेंशन का उपयोग किया जाना चाहिए। – Manatax

संबंधित मुद्दे