2016-10-12 16 views
0

問題:写真全体であると思われる行(listing-amenities-safety-photos-id)に最後にアップロードされたファイルのみがアップロードされますアップロード中に選択されます。PHP MYSQLのデータベーステーブルの特定の行に複数のファイルを挿入/アップロード

HTML:

<form action="#" method="post" enctype="multipart/form-data"> 
     <input name="upload[]" type="file" multiple="multiple" /> 
     <input type="submit" name="submit" value="UPLOAD" /> 
    </form> 

PHP:

<?php 
if(isset($_POST['submit'])) { 
    for ($i=0; $i<count($_FILES['upload']['name']); $i++) { 
     $path = "../media/images/Listings/Set/"; 
     $ext = explode('.', basename($_FILES['upload']['name'][$i])); 
     $path = $path . md5(uniqid()) . "." . $ext[count($ext)-1]; 
     move_uploaded_file($_FILES['upload']['tmp_name'][$i], $path);   

    }   

    $quotequery = "INSERT INTO `listing-details` (`listing-amenities-safety-photos-id`) VALUES ('$path')"; 
    if (mysqli_query($conn, $quotequery) == TRUE) { 

     echo "File uploaded."; 
    } else { 
     echo "Upload failed.". mysqli_error($conn); 
    } 

} 

?> 

写真が唯一のエントリが挿入されて表示する: Image as proof that only one entry from $path is inserted

注:すべての写真は、指定されたパスに正常にアップロードされました。しかし、私は私の行のすべてのファイルを挿入するmysqlを取得することはできません。私は配列が私の問題を解決するかもしれないと思っていますが、私は実際に配列のエキスパートでもPHPでもありません!ですから、「重複している」または「下に投票しました」と回答していただければ幸いです。ありがとう

答えて

0

あなたのループ内でデータベースクエリを移動します。 $pathは各パスで上書きされるため、最後に挿入するだけです。

<?php 
if(isset($_POST['submit'])) { 
    for ($i=0; $i<count($_FILES['upload']['name']); $i++) { 
     $path = "../media/images/Listings/Set/"; 
     $ext = explode('.', basename($_FILES['upload']['name'][$i])); 
     $path = $path . md5(uniqid()) . "." . $ext[count($ext)-1]; 
     move_uploaded_file($_FILES['upload']['tmp_name'][$i], $path); 

     $quotequery = "INSERT INTO `listing-details` (`listing-amenities-safety-photos-id`) VALUES ('$path')"; 
     if (mysqli_query($conn, $quotequery) == TRUE) { 

      echo "File uploaded."; 
     } else { 
      echo "Upload failed.". mysqli_error($conn); 
     } 
    } 
} 

?> 
+0

申し訳ありませんこれを開示するのを忘れてしまいました。ループ内にクエリを入れようとしましたが、同じことが起こりました。最も最近のエントリのみです。 –

+0

クエリーを挿入するときにエコーアウトします。ループの内部では、パスが毎回異なる必要があります。 – aynber

+0

私に教えてください、私はパスをどのように違うのですか? –

関連する問題