私は後でダウンロードするために複数のファイルを置くことができるadd-to-cartのような単純なスクリプトを持っています。ユーザーがカートに追加をクリックすると、セッションのファイルのIDが保存され、IDを基にすべてをダウンロードするをクリックすると、データベーステーブルにルックアップされ、ファイルがダウンロードされます。mysqlデータベースの複数の列から複数のファイルをジップしてダウンロードする
すべてのファイルは同じフォルダに保存されていますが、その名前はテーブルに保存されています。私が直面した問題は、テーブル内に異なるファイル(項目)を保持する3つの列があることです。これは私が今までに持っていて、1つのコラムのために働いているものです。質問は他の2つの列を追加する方法ですか?
$files = $_SESSION['itemid'];
$valid_files = array();
if(is_array($files)) {
foreach($files as $file) {
$sql = "SELECT * FROM document_upload WHERE upload_id = :id";
$result = $pdo->prepare($sql);
$result->bindParam(":id", $file);
$result->execute();
$resArray = $result->fetch();
if (file_exists($filePath . $resArray['upload_lesson_plan'])){
$valid_files[] = $resArray;
}
}
}
if(count($valid_files > 0)){
$zip = new ZipArchive();
$zip_name = "zipfile.zip";
if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE){
$error .= "* Sorry ZIP creation failed at this time";
}
foreach($valid_files as $res){
$zip->addFile($filePath.$res['upload_lesson_plan']);
// columns that I want to add and take files from...
//$zip->addFile($filePath.$res['upload_worksheet']);
//$zip->addFile($filePath.$res['upload_materials']);
}
ものは、私がこのような何かを試してみましたが、動作しません...ちょうど私に空白のページを表示し、何かをダウンロードしない
//$zip->addFile($filePath.$res['upload_worksheet']);
//$zip->addFile($filePath.$res['upload_materials']);
からファイルを取りたい、両方の列であり、エラーはありません。
if (file_exists($filePath . $resArray['upload_lesson_plan'] || $filePath . $resArray['upload_worksheet'] || $filePath . $resArray['upload_materials']))
これらは列に格納され、同じ列に複数のファイルがカンマで区切られています。
感謝の答えのためのようにそれらを呼び出すことが、私はエラーを得た:爆発彼らと –
複数のファイルも列に保持されていることに注意してください。問題がある場合はカンマで区切ります。 –
私は確信していませんが、この 'foreach($ valid_files as $ res){$ zip-> addFile($ filePath。$ res); ..}を変更して、 –