2014-10-31 35 views
0

我正在使用具有多个输入文本和两个输入文件的表单来更新数据库表。基于两个输入文件的数据库更新

我设置了两个隐藏着图像名称作为值的输入。

如果图像设置为imageFile,我需要更新该数据,对于imageFileBanner也是如此。

如果两者都设置,我需要更新所有字段。

如何更新只有一个图像?

if(!empty($_FILES['imageFile']['name']) && empty($_POST['imageIsSet']) !empty($_FILES['imageFileBanner']['name'])){ 
     $sql = $database->update(sprintf("UPDATE taburi SET nume='%s', logo='%s', vizibil='%d', ordine='%d', banner='%s' WHERE id='%d'", $nume, $img, $status, $ordine, $img_banner, $id)); 

    }else{ 
     $sql = $database->update(sprintf("UPDATE taburi SET nume='%s', vizibil='%d', ordine='%d' WHERE id='%d'", $nume, $status, $ordine, $id)); 

    } 

有了这个说法,如果我选择ImageFile一个文件,它会为我设置为imageFileBanner空的更新,反之亦然。

这里是我的形式

 <form id="editTabForm" name="editTabForm" enctype="multipart/form-data"> 
     <div class="row"> 
      <div class="col-sm-12 col-md-12"> 
      <div class="info"><i class="fa fa-info"></i> Completati numele tab-ului apoi selectati o imagine pentru afisare.</div> 
      </div> 
     </div> 
     <div class="row"> 
      <div class="col-sm-6 col-md-6"> 
      <div class="control-group form-group"> 
       <label for="tab-name">Nume tab</label> 
       <input class="form-control" type="text" name="tab-name" id="tab-name" placeholder="nume tab" value="{$tab.nume}" /> 
      </div> 
      <div class="control-group form-group"> 
       <label>Status</label> 
       <select name="status" class="category-tree"> 
       {if $tab.vizibil == 1} 
       <option value="1" selected="selected">Activ</option> 
       <option value="0">Inactiv</option> 
       {else} 
       <option value="1">Activ</option> 
       <option value="0" selected="selected">Inactiv</option> 
       {/if} 
       </select> 
      </div> 
      <div class="control-group form-group"> 
       <label for="tab-order">Ordinea afisarii in meniul orizontal</label> 
       <input class="form-control" type="text" name="tab-order" id="tab-order" style="width:20%;" value="{$tab.ordine}"/> 
      </div> 
      </div> 
      <div class="col-sm-6 col-md-6"> 
      <div class="control-group form-group"> 
       <label for="image">Selectati o imagine pentru afisarea tab-ului</label> 
       <div id="imagePreview"> 
       {if $tab.logo} 
       <img src="{$website}/media/taburi/{$tab.logo}" class="imagePreview thumbnail" style="max-width:50px; max-height:50px;" /> 
       {else} 
       <img src="/admin/mmadmin/template/assets/img-upload-50_50.png" class="imagePreview thumbnail" style="max-width:50px; max-height:50px;" /> 
       {/if} 
       </div> 
       <input type="file" name="imageFile" id="image" /> 
      </div> 
      <div class="control-group form-group"> 
       <label for="image">Selectati o imagine default pentru tab</label> 
       <div id="imagePreviewBanner"> 
       {if $tab.banner} 
       <img src="{$website}/media/cat/{$tab.banner}" class="imagePreviewBanner thumbnail" style="max-width:150px; max-height:150px;" /> 
       {else} 
       <img src="/admin/mmadmin/template/assets/img-upload-150_150.png" class="imagePreviewBanner thumbnail" style="max-width:150px; max-height:150px;" /> 
       {/if} 
       </div> 
       <input type="file" name="imageFileBanner" id="imageBanner" /> 
       <input type="hidden" name="id" value="{$tab.id}" /> 
       <input type="hidden" name="imageIsSet" value="{$tab.logo}" /> 
       <input type="hidden" name="bannerIsSet" value="{$tab.banner}" /> 
      </div> 
      </div> 
     </div> 
     <div class="modal-footer"> 
      <button type="button" class="btn btn-default" data-dismiss="modal">Anuleaza</button> 
      <button type="button" class="btn btn-primary" id="update-tab" data-id="{$tab.id}">Salveaza</button> 
     </div> 
     </form> 

enter image description here

+0

向我们展示您的HTML表单 – Umair 2014-10-31 17:38:01

回答

0

解决::
有没有什么更好的办法?

if(!empty($_FILES['imageFile']['name'])){ 

      $sql = $database->update(sprintf("UPDATE taburi SET nume='%s', logo='%s', vizibil='%d', ordine='%d' WHERE id='%d'", $nume, $img, $status, $ordine, $id)); 

     }else if(!empty($_FILES['imageFileBanner']['name'])){ 

      $sql = $database->update(sprintf("UPDATE taburi SET nume='%s', vizibil='%d', ordine='%d', banner='%s' WHERE id='%d'", $nume, $status, $ordine, $img_banner, $id)); 

     }else if(!empty($_FILES['imageFile']['name']) && !empty($_FILES['imageFileBanner']['name'])){ 

      $sql = $database->update(sprintf("UPDATE taburi SET nume='%s', logo='%s', vizibil='%d', banner='%s', ordine='%d' WHERE id='%d'", $nume, $img, $status, $ordine, $img_banner, $id)); 

     }else{ 

      $sql = $database->update(sprintf("UPDATE taburi SET nume='%s', vizibil='%d', ordine='%d' WHERE id='%d'", $nume, $status, $ordine, $id)); 

     }