3つの入力フィールドを持つ更新フォームがあります。入力タイプはfileで、既存のファイルを新しいファイルにアップロードして更新することができます。なぜ1つの入力フィールドだけがdbのファイル名をアップロードして更新できるのか分かりますか?他の2つの入力フィールドは、db内のファイルの名前を更新できません。参照用のコードは次のとおりです。ファイルは、フォルダではなく、デシベルで正常にアップロードされたPHPとMySQLのファイル名を更新するには
//validation and $_POST code here
for($i=0; $i<count($_FILES['uploaded']['name']); $i++) {
$tmpFilePath = $_FILES['uploaded']['tmp_name'][$i];
if($tmpFilePath != "" || !empty($tmpFilePath)) {
$shortname = $_FILES['uploaded']['name'][$i];
$filePath = "uploads/" . date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][$i];
if(!$msgError && move_uploaded_file($tmpFilePath, $filePath)) {
$sql = "UPDATE purchase SET quotation_1='".date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][0]."',quotation_2='".date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][1]."',quotation_3='".date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][2]."' WHERE pr_id='$pr_id'";
}
}
}
//query and success/fail message
HTML
<form class="pr_form" name="pr" method="post" action="updated-form.php" enctype="multipart/form-data">
<input type="file" name="uploaded[]" class="filestyle" data-buttonText="Update Quotation 1" multiple="multiple"> //only this field can update the file name on db
<input type="file" name="uploaded[]" class="filestyle" data-buttonText="Update Quotation 1" multiple="multiple">
<input type="file" name="uploaded[]" class="filestyle" data-buttonText="Update Quotation 1" multiple="multiple">
</form>
PHP & MySQLは、ファイル名が入力フィールドなし2 &ための空であります例えば、フィールドno2のみをアップロード/更新したい場合、フィールドno1を使用してファイルをアップロードする必要があります。助けを前にありがとう。私は他の人が混同させるための私のミスのためにコードに
編集コード
申し訳ありませんが、エラーがある場合は私にアドバイスください。
if(isset($_FILES['uploaded'])){
//select file name on db to check whether file exist or not
$sql="SELECT * FROM purchase WHERE pr_id='$pr_id'";
$result=mysqli_query($conn, $sql);
if(mysqli_num_rows($result) > 0){
while($row=mysqli_fetch_assoc($result)){
$quotation_1=$row['quotation_1'];
$quotation_2=$row['quotation_2'];
$quotation_3=$row['quotation_3'];
}
}
for($i=0; $i<count($_FILES['uploaded']['name']); $i++){
$tmpFilePath = $_FILES['uploaded']['tmp_name'][$i];
if($tmpFilePath != "" || !empty($tmpFilePath)){
$shortname = $_FILES['uploaded']['name'][$i];
$filePath = "uploads/" . date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][$i];
//}
if(!$msgError){
if($quotation_1!=NULL && $quotation_2!=NULL && $quotation_3==NULL){
$sql = "UPDATE purchase SET quotation_3='".date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][0]."' WHERE pr_id='$pr_id'";
} elseif($quotation_1!=NULL && $quotation_2==NULL && $quotation_3!=NULL){
$sql = "UPDATE purchase SET quotation_2='".date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][0]."' WHERE pr_id='$pr_id'";
} elseif($quotation_1==NULL && $quotation_2!=NULL && $quotation_3!=NULL){
$sql = "UPDATE purchase SET quotation_1='".date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][0]."' WHERE pr_id='$pr_id'";
} elseif($quotation_1!=NULL && $quotation_2==NULL && $quotation_3==NULL){
$sql = "UPDATE purchase SET quotation_2='".date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][0]."',quotation_3='".date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][1]."' WHERE pr_id='$pr_id'";
} elseif($quotation_1==NULL && $quotation_2==NULL && $quotation_3==NULL){
$sql = "UPDATE purchase SET quotation_1='".date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][0]."',quotation_2='".date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][1]."',quotation_3='".date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][2]."' WHERE pr_id='$pr_id'";
} elseif($quotation_1==NULL && $quotation_2!=NULL && $quotation_3==NULL){
$sql = "UPDATE purchase SET quotation_1='".date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][0]."',quotation_3='".date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][1]."' WHERE pr_id='$pr_id'";
} elseif($quotation_1==NULL && $quotation_2==NULL && $quotation_3!=NULL){
$sql = "UPDATE purchase SET quotation_1='".date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][0]."',quotation_2='".date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][1]."' WHERE pr_id='$pr_id'";
}
}
}
}
//query and success/fail msg
のようなあなたのクエリを編集してみてください?本当にやりたいことを再考することをお勧めします。 – daremachine
さまざまなアップロードをループする際に、3つのアップロード名をSQLクエリに含めるのはなぜですか?おそらくあなたの問題に関連している、ここで物事を整理する方法を理解できません。 –
申し訳ありませんが、このアップデートコードは、私が今日見た最も醜いコードです:)あなたはプログラマであり、コピー/ペーストマシンではありません。もっとダイナミックなものを加える。 – daremachine