繁体   English   中英

使用php和mysql的简单html表单。 l如何为数据库中的空字段维护NULL值

[英]Simple html form using php and mysql. How do l maintain NULL values for empty fields in the database

我建立了一个简单的html表单,该表单具有输入框和文本区域,然后借助php脚本将其插入到mysql数据库中。 并非所有字段都必须填写,我希望能够在数据库中搜索NULL字段。 我的问题是,当表单提交时,即使没有任何信息的条目也会插入一些东西,例如空白区域,这意味着l便无法在DB中搜索NULL字段,因为它返回了所有内容。

这是将MYSQL插入查询发送到数据库的php脚本

<?php
/*Av Tech Name*/
$techNam = $_POST['techNam'];
/* Building */
$building = $_POST['building'];
/* Room */ 
$roomNum = $_POST['roomNum'];
/* Day */
$day = $_POST['day'];
/*Month*/
$month = $_POST['month'];
/*Projector Power */
$projPower = $_POST['projPower'];
/* Screen decends and retracts */
$screenUpDown = $_POST['screenUpDown'];
/* Power to buton control */
$controlPower = $_POST['controlPower'];
/* Lamp working */
$projLamp = $_POST['projLamp'];
/* Rips and tears to the screen */
$rips = $_POST['rips'];
/* Control Functions */
$controlFunctions = $_POST['controlFunctions'];
/* Projector image */
$projImage = $_POST['projImage'];
/* Screen Notes */
$screenNotes = $_POST['screenNotes'];
/* Control Notes */
$controlNotes = $_POST['controlNotes'];
/* Monitor power */
$monitorPower = $_POST['monitorPower'];
/* Network connection */
$networkConnect = $_POST['networkConnect'];
/* PC Power */
$pcPower = $_POST['pcPower'];
/* PC image */
$pcImage = $_POST['pcImage'];
/* PC audio */
$pcAudio = $_POST['pcAudio'];
/* PC DVD playback */
$pcDvd = $_POST['pcDvd'];
/* BluRay Player power */
$BluRayPower = $_POST['BluRayPower'];
/* Laptop VGA connection */
$laptopVga = $_POST['laptopVga'];
/* Visualiser Power */
$visPower = $_POST['visPower'];
/* bluRay Play back */
$BluRayPlay = $_POST['BluRayPlay'];
/* Laptop audio */
$laptopAudio = $_POST['laptopAudio'];
/* Visualiaser lamp */
$visLamp = $_POST['visLamp'];
/* BluRay Audio */
$BluRayAudio = $_POST['BluRayAudio'];
/* laptop HDMI */
$laptopHdmi = $_POST['laptopHdmi'];
/* Visualiser image */
$visImage = $_POST['visImage'];
/* Laptop Network Connection */
$laptopNetwork = $_POST['laptopNetwork'];
/* Visualiser automatic and manual zoom */
$visZoom = $_POST['visZoom'];
/* Lectern mic working */
$micLec = $_POST['micLec'];
/* Video conference power */
$vcPower = $_POST['vcPower'];
/* Condition of lectern Condition */
$lecternCondition = $_POST['lecternCondition'];
/* Radio mics working */
$audioRadioMics = $_POST['audioRadioMics'];
/* VC unit dials and connects */
$vcConnect = $_POST['vcConnect'];
/* General condition of cables Good */
$cableCondition = $_POST['cableCondition'];
/* Visualiser audio */
$vcAudio = $_POST['vcAudio'];
/* Condition of wall connections */
$wall = $_POST['wall'];
/* Visualiser laptop connection */
$vcLaptop = $_POST['vcLaptop'];
/* White board condition */
$whiteB = $_POST['whiteB'];
/* Video conference notes */
$vcNotes = $_POST['vcNotes'];

$sql = "INSERT INTO avChecklist (techNam, building, roomNum, day, month, 
projPower, screenUpDown, controlPower, projLamp, rips, controlFunctions, 
projImage, screenNotes, controlNotes, monitorPower, networkConnect, 
pcPower, pcImage, pcAudio, pcDvd, BluRayPower, laptopVga, visPower, 
BluRayPlay, laptopAudio, visLamp, BluRayAudio, laptopHdmi, visImage, 
laptopNetwork, visZoom, micLec, vcPower, lecternCondition, 
audioRadioMics, vcConnect, cableCondition, vcAudio, wall, vcLaptop, 
whiteB, vcNotes) VALUES ('$techNam', '$building', '$roomNum', '$day', 
'$month', '$projPower', '$screenUpDown', '$controlPower', '$projLamp', 
'$rips', '$controlFunctions', '$projImage', '$screenNotes', 
'$controlNotes', '$monitorPower', '$networkConnect', '$pcPower', 
'$pcImage', '$pcAudio', '$pcDvd', '$BluRayPower', '$laptopVga', 
'$visPower', '$BluRayPlay', '$laptopAudio', '$visLamp', '$BluRayAudio', 
'$laptopHdmi', '$visImage', '$laptopNetwork', '$visZoom', '$micLec', 
'$vcPower', '$lecternCondition', '$audioRadioMics', '$vcConnect', 
'$cableCondition', '$vcAudio', '$wall', '$vcLaptop', '$whiteB', 
'$vcNotes')";

 if (!mysql_query($sql)) {
 die('Error: ' . mysql_error());
 }
echo 'Thanks '. $techNam .' your completed maintenance check for room '. 
$roomNum .'  has been added to the database.';
echo "<br /><br /><br />";
echo 'This page will redirect in 5 seconds';
mysql_close();
?>

表结构

Database a9404870_heAv
Table structure for table avChecklist
Field   Type    Null    Default
submitDate  timestamp   Yes CURRENT_TIMESTAMP
techNam varchar(255)    Yes NULL
building    varchar(255)    Yes NULL
roomNum varchar(255)    Yes NULL
day varchar(255)    Yes NULL
month   varchar(255)    Yes NULL
projPower   varchar(255)    Yes NULL
screenUpDown    varchar(255)    Yes NULL
controlPower    varchar(255)    Yes NULL
projLamp    varchar(255)    Yes NULL
rips    varchar(255)    Yes NULL
controlFunctions    varchar(255)    Yes NULL
projImage   varchar(255)    Yes NULL
screenNotes varchar(255)    Yes NULL
controlNotes    varchar(255)    Yes NULL
monitorPower    varchar(255)    Yes NULL
networkConnect  varchar(255)    Yes NULL
pcPower varchar(255)    Yes NULL
pcImage varchar(255)    Yes NULL
pcAudio varchar(255)    Yes NULL
pcDvd   varchar(255)    Yes NULL
BluRayPower varchar(255)    Yes NULL
laptopVga   varchar(255)    Yes NULL
visPower    varchar(255)    Yes NULL
BluRayPlay  varchar(255)    Yes NULL
laptopAudio varchar(255)    Yes NULL
visLamp varchar(255)    Yes NULL
BluRayAudio varchar(255)    Yes NULL
laptopHdmi  varchar(255)    Yes NULL
visImage    varchar(255)    Yes NULL
laptopNetwork   varchar(255)    Yes NULL
visZoom varchar(255)    Yes NULL
micLec  varchar(255)    Yes NULL
vcPower varchar(255)    Yes NULL
lecternCondition    varchar(255)    Yes NULL
audioRadioMics  varchar(255)    Yes NULL
vcConnect   varchar(255)    Yes NULL
cableCondition  varchar(255)    Yes NULL
vcAudio varchar(255)    Yes NULL
wall    varchar(255)    Yes NULL
vcLaptop    varchar(255)    Yes NULL
whiteB  varchar(255)    Yes NULL
vcNotes varchar(255)    Yes NULL

为了确保将某些内容设置为NULL,您必须执行以下操作:

isset($_POST['screenNotes'])? $screenNotes = $_POST['screenNotes'] : $screenNotes = NULL;

如果该字段为空,则必须对希望插入NULL的每个字段执行此操作。

我在这里所做的是使用三元条件- if条件变短了:

<if this is true> ? <do this> : <else do that>;

有关三元运算符的更多信息,请参阅docs

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM