我創建了一個編輯表單,我正在編輯我的房間號碼和房間描述以及房間圖像等。基於類別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.當編輯的所有字段更新成功,但來到圖像它不工作我的意思是,如果用戶正在添加新圖像,然後在數據庫中進行更新,但如果用戶正在編輯現有圖像,則空值將存儲在數據庫中。
如何解決這個問題。如何在輸入類型文件中發送動態值。任何幫助?
是否$ existing_category_image目前持有的圖像數據庫中的該行?如果是這樣,那麼設置$ imageData = $ existing_category_image並保存照常。 – Ciaran
,我無法將$ existing_category_image值傳遞給數據庫。 – Nayana
是的。 100%爲真 – Nayana