我有兩個頁面,edit.php和editdone.php。 在edit.php上,我可以填充正在發送到editdone.php的信息。然後該頁面將運行一個查詢來更新mysql數據庫中的數據。更新mysql數據庫並跳過空字段
問題是;如果我將edit.php上的輸入字段留空,editdone.php將用空數據(無)替換數據庫中的當前信息。
我想要做的是,如果在edit.php的字段中寫入了某些內容,則使editdone.php更新數據。因此,如果我選擇將某些字段留空,例如只填寫表單中的一個字段,我只想用填充數據更新填充字段,而不是用空數據替換未填充字段。那麼這些字段應該,如果我沒有在edit.php中填充任何數據,請保留已經存在的數據。
edit.php
<?php
\t \t \t \t
if (!empty($error_msg)) {
echo $error_msg;
}
$cn = $_POST['cname'];
?>
<form action="editdone.php" method="POST" enctype="multipart/form-data" name="editdone" onsubmit="return validateForm()">
<input type="hidden" name="namec" value="<?php echo htmlspecialchars($cn); ?>">
<br>
\t Fyll i Företagets namn: <br>
\t <input type="text" name="company_name" id="company_name">
\t
\t <br><br>
\t
\t Lägg till en logga:
<input type="file" name="image" id="image">
\t <br><br>
\t
\t Description:<br>
<textarea name="description" id="description" rows="4" cols="50"></textarea>
<br>
\t <br>
\t
Fyll i välkomnings meddelande:<br>
<textarea name="welcome_text" id="welcome_text" rows="5" cols="50"></textarea>
<br>
\t <br>
\t
\t Fyll i ett tack meddelande:<br>
<textarea name="thanks_message" id="thanks_message" rows="5" cols="50"></textarea>
<br>
\t <br>
\t <input type="submit" name="submit" value="Nästa" />
\t
</form>
editdone.php
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
if(mysqli_connect_errno())
{
\t echo mysqli_connect_error();
}
$namenamec = $_POST['namec'];
$company_name = $_POST['company_name'];
$description = $_POST['description'];
$welcome_text = $_POST['welcome_text'];
$thanks_message = $_POST['thanks_message'];
$image = addslashes (file_get_contents($_FILES['image']['tmp_name']));
$logo = getimagesize($_FILES['image']['tmp_name']);
$image_type = $logo['mime'];
$q = "UPDATE project SET project_name='$company_name', description='$description', image='$image', image_type='$image_type', welcome_text='$welcome_text', thanks_message='$thanks_message' WHERE project_name='$namenamec' ";
$r = mysqli_query($mysqli,$q);
if($r)
{
\t echo "<br>Information stored successfully";
\t
}
?>
它確實有效,但我得到這些錯誤消息,即使代碼做它的意圖。 警告:file_get_contents()函數:文件名不能在C空:\ XAMPP \ htdocs中\野火\ editdone.php上線76 警告:和getimagesize():文件名不能爲空在C:\ XAMPP \ htdocs中\野火\第77行上的editdone.php 這些行是76和77; $ image = addslashes(file_get_contents($ _ FILES ['image'] ['tmp_name'])); $ logo = getimagesize($ _ FILES ['image'] ['tmp_name']); – Max
代碼已更新。請檢查更新的版本。謝謝。 – user1544541
如果您仍然收到警告,請隨時告訴我。謝謝。 – user1544541