Php mysql仅在post包含数据时更新数据

Php mysql仅在post包含数据时更新数据,php,mysql,Php,Mysql,我有一个简单的html表单,用户从网站上的表中选择和标识(必需的数据),然后他可以/或不可以更改2个字段。第一个是2个值(字符串)的下拉列表,第二个是打开点的数量! 因此,如果用户将两个字段都留空,并错误地单击“发送”,则不会发生任何事情。如果用户只更改其中一个字段,则该字段只应更改 我已经检查了这里的每个论坛和几乎所有的帖子,但我仍然无法让它工作 <form action="viv_settings_tecaji.php" method="post"> Datum term

我有一个简单的html表单,用户从网站上的表中选择和标识(必需的数据),然后他可以/或不可以更改2个字段。第一个是2个值(字符串)的下拉列表,第二个是打开点的数量! 因此,如果用户将两个字段都留空,并错误地单击“发送”,则不会发生任何事情。如果用户只更改其中一个字段,则该字段只应更改

我已经检查了这里的每个论坛和几乎所有的帖子,但我仍然无法让它工作

    <form action="viv_settings_tecaji.php" method="post">
Datum termina (izberi ID):
  <input type="number" name="ID" required><br><br>
        <!--Sprememba tega datuma (če ne želiš spremenit pusti prazno):
  <input type="date" name="nov_datum"><br><br>-->
       Sprememba statusa (če želiš da ostane isto vpiši trenutni status!:
  <select name="STATUS">
<option></option>
  <option value="zaprt">Zaprt</option>
  <option value="odprt">Odprt</option>
</select><br><br>
        Sprememba števila odprtih mest
  <input type="number" name="st_odprtih_mest"><br><br>
  <input type="submit">
</form><br>

基准端(izberi ID):


Sprememba状态(čeželišda ostane isto vpiši trenutni状态!: 扎普特 Odprt

Spremembaštevila odprtih mest


php


有几种方法可以避免在数据库中插入“空”记录。这取决于您是想在客户端(表单提交前)还是服务器端(表单提交到服务器时)插入

我将向您展示如何在服务器端执行此操作,因为您发布了php脚本

viv\u settings\u tecaji.php中

...
$update_status = $_POST['STATUS'];
$update_st_odprtih_mest = $_POST['st_odprtih_mest'];
$update_ID = $_POST['ID'];

if($update_status == "" || $update_st_odprtih_mest == "" || $update_ID == ""){
    die("One of the form fields was empty");
}

...
如果任何表单字段为空,这将终止您的脚本。您可以检查
null
或使用PHP的
empty()
函数


我希望这会有所帮助!

因此,我会使用以下代码使其正常工作。因此,对于部分,如果用户将两个字段都保留为空,我将为至少1个字段编写一个脚本

$sql = "UPDATE razpisani_tecaji 
SET 
STATUS = IF(LENGTH('$update_status')=0, STATUS, '$update_status'),
ST_ODPRTIH_MEST = IF(LENGTH('$update_st_odprtih_mest')=0, ST_ODPRTIH_MEST, '$update_st_odprtih_mest')
WHERE ID_TECAJA = $update_ID";

一个像样的表单示例如下所示

<form action='' method='post'>
    <input type='text' name='field1' required>
    <select name='fieldSelect'>
        <option value='value1'>Value1</option>
        <option value='value2'>Value2</option>
    </select>
    <input type='submit' name='send'>
</form>

价值1
价值2
那么PHP将是这样的

<?php 
if(isset($_POST['send'] && (!empty($_POST['field1']) || !empty($_POST['fieldSelect']))){
    $field1 = $_POST['field1'];
    $fieldSelect = $_POST['fieldSelect'];
    //YOUR SQL CODE
} else {
    echo "Please Insert Some Data";
}
?>

<?php 
if(isset($_POST['send'] && (!empty($_POST['field1']) || !empty($_POST['fieldSelect']))){
    $field1 = $_POST['field1'];
    $fieldSelect = $_POST['fieldSelect'];
    //YOUR SQL CODE
} else {
    echo "Please Insert Some Data";
}
?>