Php 如果接收的值为空,则插入值

Php 如果接收的值为空,则插入值,php,mysql,Php,Mysql,因此,如果post接收到的值为null,我将尝试在表行中显示某个值。 到目前为止,我已经将此作为我的小型数据库(它是西班牙语的): 这些插入到“tipos”中的值将显示在如下选项中: <select name="tipos"> <option value="sintipo">---------</option> <?php while( $row = mysqli_fetch_assoc($rta

因此,如果post接收到的值为null,我将尝试在表行中显示某个值。 到目前为止,我已经将此作为我的小型数据库(它是西班牙语的):

这些插入到“tipos”中的值将显示在如下选项中:

    <select name="tipos">
     <option value="sintipo">---------</option>
        <?php
            while( $row = mysqli_fetch_assoc($rta)):
            $tipo = $row['TIPO'];
            echo '<option value="'.$row['ID'].'">'.$tipo.'</option>';
            endwhile;
         ?>
</select>
表格中填写的所有数据随后显示在表格的不同行中。 我现在需要的是,如果有人选择“-----”选项,屏幕上显示的值是“No catalogado” 到目前为止我还没能做到。
有人能帮我吗?

在插入之前,您可以在PHP端执行空检查。或您只需使用SQL内置的
ISNULL()

您还可以在SQL中使用
CASE
语句跨多个值完成此行为


我知道这不是最冗长的答案,但它应该有用。

这就是你的要求吗

$query = "INSERT INTO datos SET NOMBRE='$nombre', AVISTAMIENTO='$lugar', LOCALIDAD='$localidad', INFO='$info', ARCHIVO='$ruta', FKTIPOS = " . ($tipo == 'sintipo' ? 'NULL' : "'$tipo'");

请注意,您有非常肮脏的代码,您甚至不过滤和逃避收入值,我猜。尝试google
php mysql转义值

在上一个查询$query中,您不应该将$tipo括在单引号中,比如“$tipo”,如果没有$tipo,它应该可以工作!请在查询中对$params进行sql转义,如图所示的代码易于sql注入,这是一个非常大的风险
$query = "INSERT INTO datos SET NOMBRE='$nombre', AVISTAMIENTO='$lugar', LOCALIDAD='$localidad', INFO='$info', ARCHIVO='$ruta', FKTIPOS = NULLIF('$tipo','sintipo')";
$query = "INSERT INTO datos SET NOMBRE='$nombre', AVISTAMIENTO='$lugar', LOCALIDAD='$localidad', INFO='$info', ARCHIVO='$ruta', FKTIPOS = " . ($tipo == 'sintipo' ? 'NULL' : "'$tipo'");