1

こんにちはみんな私は私のデータベースに5万枚の写真があるウェブサイトを持っていますParty_Idによるすべての写真の名前私はこのようなものを持っています

Picture_Id   |  Party_Id    |  Picture_Name
1            |  1           |  1aaaa.jpg
2            |  1           |  2aaaa.jpg
3            |  2           |  3aaaa.jpg
4            |  2           |  4aaaa.jpg

ウェブサイトが作成されたときの問題は、すべての写真を同じフォルダに保存することでした。今、何かを操作したり、フォルダにアクセスしたりする必要があるとき、ftpは非常に多くのファイルを表示できません。

だから私のアイデアは、1、2、3のような各パーティIDのフォルダを作成するようなものでした

次に、データベースをチェックして、パーティID = 1のすべての写真を選択し、フォルダ1に移動する場合は、1つずつ実行してから、元のフォルダを削除するか、そのまま保持します。

私はこれを行う方法がわかりません、私は本当にどんな助けにも感謝します。

ありがとう。

4

2 に答える 2

0

私はこれが好きで、うまくいきました。おそらく最良の解決策ではありませんが、仕事はしました

  $Sql = "SELECT * FROM tabpartys WHERE Party_Id = '232'";
  $Query = mysql_query($Sql, $Conn) or die (mysql_error($Conn));
  while($Rs = mysql_fetch_array($Query)){
  // Identify directories
  $source = "../img/Fotos/".$Rs["Photo_Name"];
  $destination = "../img/Fotos/232/".$Rs["Photo_Name"];
  copy($source, $destination);
  }
于 2013-01-25T04:53:22.523 に答える
0

私が理解しているのは、あなたにはパーティー ID があり、各パーティーにはいくつかの写真のセットがあるということです。したがって、パーティの詳細をデータベースに挿入すると、生成されたパーティの ID を を使用して取得できますlast_insert_id()

これで、通常は次の方法で写真をアップロードできます。

$target_path = "img/" . mysqli_insert_id();

$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}

では、これがあなたのケースに適したアプローチだと思いますか? ディレクトリ構造は次のようになります。

img/
    1/
        photo_a_1.jpg
        photo_a_2.jpg
        photo_a_3.jpg
        photo_a_4.jpg
    2/
        bro_wedding_1.jpg
        bro_wedding_2.jpg
        bro_wedding_3.jpg
    3/
        birthday_1.jpg
        birthday_2.jpg
        birthday_3.jpg
        birthday_4.jpg
        birthday_5.jpg

これで、次のように使用できます。

<img src="img/$partyId/$fileIndex" />
于 2013-01-25T04:05:39.323 に答える