我有两个页面,edit.php和editdone.php。
在edit.php上,我可以填充信息,这些信息将被发送到editdone.php。然后,该页面运行一个查询,更新mysql数据库中的数据。
问题是,如果在edit.php上保留一个输入字段为空,那么editdone.php将用空数据替换数据库中的当前信息(无)。
如果在edit.php字段中写了什么,我想做的是让editdone.php更新数据。因此,如果我选择保留一些字段为空,例如只填充表单中的一个字段,我只想用填充的数据更新填充的字段,而不想用空数据替换未填充的字段。然后,如果我没有填写Edt.PHP中的任何数据,则保留已有的数据。
编辑.php

<?php


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>
	Fyll i Företagets namn: <br>
	<input type="text" name="company_name" id="company_name">

	<br><br>

	 Lägg till en logga:
    <input type="file" name="image" id="image">

	<br><br>

	Description:<br>
   <textarea name="description" id="description" rows="4" cols="50"></textarea>
   <br>
	<br>

   Fyll i välkomnings meddelande:<br>
   <textarea name="welcome_text" id="welcome_text" rows="5" cols="50"></textarea>
   <br>
	<br>

	 Fyll i ett tack meddelande:<br>
   <textarea name="thanks_message" id="thanks_message" rows="5" cols="50"></textarea>
   <br>
	<br>
	<input type="submit" name="submit" value="Nästa" />

</form>

编辑完成.php
<?php
    ini_set('display_errors',1);
error_reporting(E_ALL);

if(mysqli_connect_errno())
{
	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)
{
	echo "<br>Information stored successfully";

}
?>

最佳答案

    <?php
            ini_set('display_errors',1);
        error_reporting(E_ALL);

        if(mysqli_connect_errno())
        {
            echo mysqli_connect_error();
        }

        $company_name = "";
        $description = "";
        $welcome_text = "";
        $thanks_message = "";
        $image = "";
        $logo = "";
        $image_type = "";

        $namenamec = $_POST['namec'];
        $company_name = $_POST['company_name'];
        $description = $_POST['description'];
        $welcome_text = $_POST['welcome_text'];
        $thanks_message = $_POST['thanks_message'];
        if( isset($_FILES) )
            {
                if( !empty($_FILES) )
                    {
                        if( isset($_FILES['image']['tmp_name']) )
                            {
                                if( $_FILES['image']['tmp_name'] != "" && !empty($_FILES['image']['tmp_name']) )
                                    {
                                        $image = addslashes (file_get_contents($_FILES['image']['tmp_name']));
                                        if( $image != "" && !empty($image) )
                                            {
                                                $logo = getimagesize($_FILES['image']['tmp_name']);
                                                $image_type = $logo['mime'];
                                            }
                                    }
                            }
                    }
            }


        $update_values = array();
        if($company_name != "")
            $update_values[] = "project_name='".$company_name."'";
        if($description != "")
            $update_values[] = "description='".$description."'";
        if($image != "")
            $update_values[] = "image='".$image."'";
        if($image_type != "")
            $update_values[] = "image_type='".$image_type."'";
        if($welcome_text != "")
            $update_values[] = "welcome_text='".$welcome_text."'";
        if($thanks_message != "")
            $update_values[] = "thanks_message='".$thanks_message."'";

        $update_values_imploded = implode(', ', $update_values);

        if( !empty($update_values) )
            {
                $q = "UPDATE project SET $update_values_imploded WHERE project_name='$namenamec' ";
                $r = mysqli_query($mysqli,$q);

                if($r)
                {
                    echo "<br>Information stored successfully";

                }
            }



        ?>

10-05 20:34
查看更多