2014-12-16 7 views
5

मेरे पास एक ऐसा फॉर्म है जो सर्वर फ़ोल्डर में एकाधिक छवियों को अपलोड करने और डेटाबेस में अपना पथ सहेजने में मदद करता है, समस्या यह है कि सभी छवियों का पथ एक कॉलम पर अपलोड हो रहा है, और इसके कारण मुझे छवि को प्रदर्शित करने के लिए पथ लाने में समस्या हो रही है। समाधान यह होगा कि मैं या तो छवियों को अलग-अलग कॉलम में संग्रहीत करता हूं या छवियों को अलग करने का तरीका ढूंढता हूं, हालांकि मैं दोनों को करने में सक्षम नहीं हूं।विभिन्न डेटाबेस कॉलम में छवि का पथ

पथ है कि संग्रहीत हो रही लगता है कि

uploads/c376437e2a45598b2f4d89eae4f191e8.png*uploads/c376437e2a45598b2f4d89eae4f191e8.png8069756be5095978123ae51fadbffe3b.png*uploads/c376437e2a45598b2f4d89eae4f191e8.png8069756be5095978123ae51fadbffe3b.png04aaa414c21dc057bc594b896124068e.png 

डेटाबेस संरचना डेमो

id offimage offimage1 offimage2 

कोड मैं अब तक है (फार्म और php कोड अलग पेज पर हैं)

<form enctype="multipart/form-data" action="co_insert_office_image.php?id=<?php echo $_GET['id']; ?>" method="post"> 
     First Field is Compulsory. Only JPEG,PNG,JPG Type Image Uploaded. Image Size Should Be Less Than 100KB. 
    <hr/> 
    <div id="filediv"><input name="file[]" type="file" id="file"/></div><br/> 
    <input type="button" id="add_more" class="upload" value="Add More Files"/> 
    <input type="submit" value="Upload File" name="submit" id="upload" class="upload"/> 
</form> 

co_insert_office_image.php

<?php 
ob_start(); 
include('co_session.php'); 
$con=mysqli_connect("localhost","root","","db"); 
// Check connection 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
if (isset($_POST['submit'])) { 
    $j = 0; //Variable for indexing uploaded image 

    $target_path = "uploads/"; //Declaring Path for uploaded images 
    for ($i = 0; $i < count($_FILES['file']['name']); $i++) {//loop to get individual element from the array 

     $validextensions = array("jpeg", "jpg", "png"); //Extensions which are allowed 
     $ext = explode('.', basename($_FILES['file']['name'][$i]));//explode file name from dot(.) 
     $file_extension = end($ext); //store extensions in the variable 

     $target_path = $target_path . md5(uniqid()) . "." . $ext[count($ext) - 1];//set the target path with a new name of image 
     $j = $j + 1;//increment the number of uploaded images according to the files in array  

     if (($_FILES["file"]["size"][$i] < 100000) //Approx. 100kb files can be uploaded. 
       && in_array($file_extension, $validextensions)) { 
      if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $target_path)) {//if file moved to uploads folder 
       //echo $j. ').<span id="noerror">Image uploaded successfully!.</span><br/><br/>'; 

       $file_name_all.=$target_path."*"; 
       $filepath = rtrim($file_name_all, '*'); 
       //echo $filepath; 
       $officeid = $_GET['id']; 
       $sql = "UPDATE register_office SET offimage='$filepath' WHERE id='$officeid' "; 
          if (!mysqli_query($con,$sql)) 
           { 
            die('Error: ' . mysqli_error($con)); 
           } 

      } else {//if file was not moved. 
       echo $j. ').<span id="error">please try again!.</span><br/><br/>'; 
      } 
     } else {//if file size and file type was incorrect. 
      echo $j. ').<span id="error">***Invalid file Size or Type***</span><br/><br/>'; 
     } 
    } 
    header("Location: co_request_sent.php "); 
} 
mysqli_close($con); 
?> 
+0

माता-पिता की अनुक्रमणिका के साथ एक और तालिका बनाने के बारे में और फिर वहां छवियों को स्टोर करने के बारे में क्या? –

+0

@ अंदंद घयवनकर अभी भी यह एक कॉलम – Sam

+0

में सभी छवि पथ को संग्रहीत करेगा, यह एक कर्नल में कैसे स्टोर करेगा? एक diff तालिका में आईडी, parent_id, img_path जैसे कॉल होंगे और इसमें parent_table के साथ बहुत अधिक संबंध होगा। आपको छवि तालिका में पेरेंट टेबल आईडी को बनाए रखना होगा –

उत्तर

1

अंत में मुझे मिल गया समाधान, मैंने देखा कि कुछ लोग इस सवाल चिह्नित किया है और वे जवाब की तलाश में हो सकता है, इसलिए यहाँ यह

पहले डेटाबेस से कनेक्ट डेटा लाने और फिर निम्न कोड का उपयोग है

while($row1 = mysqli_fetch_assoc($result1)) 
    { 
    $str= $row1["offimage"]; 
    //print_r (explode("*",$str)); 

    $array = explode('*', $str); 
    foreach ($array as $item) { 
     //echo "<li>$item</li>"; 
     echo "<img src=\"http://localhost/cms/1/". $item . "\" height=\"200\" width=\"200\"/>"; 
    } 

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