2015-06-25 19 views
1

我創建了一個編輯表單,我正在編輯我的房間號碼和房間描述以及房間圖像等。基於類別ID。如何在輸入文件中發送動態值?

第一個編輯表單將從數據庫中獲取數據。 示例代碼:

if (isset($_GET['id'])) 
       { 
        $current_id = $_GET['id']; 
        $query=mysql_query("select * from room where room_id='$current_id'"); 
         $i = 0; 
         while($row=mysql_fetch_array($query)) 
         { 
          $i++; 
          $room_id=$row['room_id']; 
          $cat_id=$row['cat_id']; 
          $room_number=$row['room_no']; 
          $room_desc=$row['room_desc']; 
          $room_image=$row['room_image']; 

        ?> 
        <table class="table table-bordered table-hover table-striped"> 
          <thead> 
           <tr> 
            <th>Room Id</th> 
            <th>Category Type</th> 
            <th>Room Number</th> 
            <th>Room Description</th> 
            <th>Room Image</th> 

           </tr> 
          </thead> 
          <tbody> 
          <tr class="active"> 
            <td><input type="text" value="<?php echo $room_id; ?>" readonly="readonly" name="room_id"></td> 
            <td> 

            <?php   
               // Slecting cat_id for displaying cat_type on Edit form 
            $query_room=mysql_query("SELECT * FROM `category` WHERE cat_id in (". $cat_id .")"); 

            while($row=mysql_fetch_array($query_room)) 
            { 
             $category_name=$row['cat_type']; 
             $category_id=$row['cat_id']; 
             echo '<input type="text" value='.$category_name.' readonly="readonly" name="cat_name">'; 

             echo '<input type="hidden" value='.$category_id.' readonly="readonly" name="cat_id">'; // hidden value for cat_id to fetch data from category 
             $_SESSION['imagesession'] = "data:image/png;base64, base64_encode($room_image)"; 
            } 
            ?> 
            </td> 
            <td><input type="text" value="<?php echo $room_number ;?>" name="room_number" required></td> 
            <td><input type="text" value="<?php echo $room_desc ;?>" name="room_desc" required></td> 
            <td><input type="image" src="data:image/png;base64,<?php echo base64_encode($room_image);?>" name="myimage" alt="No Photo" title="Click to View in Detail" height="50px" width="50px"/> 

            <label>Upload Image</label> 
             <input type="file" id="uploadImage" value="<?php echo base64_encode($room_image);?>" name="image" onChange="PreviewImage();" /> 
             <img id="uploadPreview" style="width: 200px; height: 300px; border-style:none" /> 

            </td> 
            </tr> 
           </tbody> 
     </table> 
         </div> 
         </div> 
         <button type="submit" class="btn btn-success" name="update_rooms">Update Rooms</button> 
         <button type="reset" class="btn btn-danger">Reset</button> 
         </form> 

獲取數據,並在數據庫中更新

  if(isset($_POST['update_rooms'])) 
      { 
      $current_id = $_POST['room_id']; 
      $room_desc = $_POST['room_desc']; 
      $room_number = $_POST['room_number'];    
      $cat_id = $_POST['cat_id']; 


      // $imageName = mysql_real_escape_string($_FILES["image"]["name"]); 
      $imageData = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"])); 
      $imageType = mysql_real_escape_string($_FILES["image"]["type"]); 
      if(empty($imageData)) 
      { 
       if($imageData === $existing_category_image) 
       { 
       echo '<span style="color:#E02F2F;text-align:center;font-size:30px;padding-left:190px;">Reselect the Image</span>';     
       return; 
       } 
      } 

      $sql = "UPDATE room SET cat_id='$cat_id', room_no='$room_number', room_desc='$room_desc', room_image='$imageData' WHERE room_id='$current_id'"; 
      //echo "Res".$sql; 
      $result=mysql_query($sql); 
      if($result) 
      { 
      echo '<span style="color:#E02F2F;text-align:center;font-size:30px;padding-left:190px;">Record Updated Successfully!</span>'; 
      //header("Location: success.php"); 
      } else 
      { 
      echo '<span style="color:#E02F2F;text-align:center;font-size:30px;padding-left:250px;">Error Found!.mysql_error()</span>'; 
      } 
} 

問題:

1.當編輯的所有字段更新成功,但來到圖像它不工作我的意思是,如果用戶正在添加新圖像,然後在數據庫中進行更新,但如果用戶正在編輯現有圖像,則空值將存儲在數據庫中。

如何解決這個問題。如何在輸入類型文件中發送動態值。任何幫助?

+0

是否$ existing_category_image目前持有的圖像數據庫中的該行?如果是這樣,那麼設置$ imageData = $ existing_category_image並保存照常。 – Ciaran

+0

,我無法將$ existing_category_image值傳遞給數據庫。 – Nayana

+0

是的。 100%爲真 – Nayana

回答

1

你也可以使用這個

取這個$existing_category_image從數據庫不需要從形式張貼。

if($imageData == '' || $imageData == null){ 
$sql = "UPDATE room SET cat_id='$cat_id', room_no='$room_number', room_desc='$room_desc' WHERE room_id='$current_id'"; 
}else{ 
$sql = "UPDATE room SET cat_id='$cat_id', room_no='$room_number', room_desc='$room_desc', room_image='$imageData' WHERE room_id='$current_id'"; 
} 

OR

這樣寫:

if($imageData == '' || $imageData == null){ 
      $imageData = $existing_category_image; 
    } 

$sql = "UPDATE room SET cat_id='$cat_id', room_no='$room_number', room_desc='$room_desc', room_image='$imageData' WHERE room_id='$current_id'"; 
+0

謝謝你的幫助。它在兩個條件下工作1.「如果用戶添加了新圖像」,2.「如果用戶編輯了現有圖像」,但是如果圖像已經在數據庫中並且用戶沒有改變任何東西,我的意思是他不希望編輯圖像然後他將提交編輯室然後我得到一個錯誤錯誤是「」。:file_get_contents():文件名不能爲空「 – Nayana