The following is a snippet from my HTML form which pulls the options from the table rows accordingly.
What I want to do is have the first option value to be NULL so when no choice is made, NULL is entered when the form is submitted to the database.
<td>Type</td>
<td>:</td>
<td><select name="type_id" id="type_id" class="form">
<option value=""></option>
<?php
$sql = mysql_query("SELECT type_id, type FROM $tbl_add_type") or die(mysql_error());
while ($row = mysql_fetch_array($sql))
{
echo "<option value=".$row['type_id'].">" . $row['type'] . "</option>";
}
?>
</select>*</td>
Is this possible? Or could someone suggest an easier/better way of doing this?
Thanks
Update: Thanks for the answer, I'm using the method detailed below to convert it to NULL.
if ($_POST['location_id'] === '')
{
$_POST['location_id'] = 'NULL';
}
However when trying to use this NULL value with the following query it does not work.
UPDATE addresses SET location_id='NULL' WHERE ipid = '4791'
I know it needs to be location_id=NULL
instead but don't know how to do this...
Update 2: this is how my queries work:
if ($_POST['location_id'] === '')
{
$_POST['location_id'] = 'NULL'; // or 'NULL' for SQL
}
$notes=isset($_POST['notes']) ? mysql_real_escape_string($_POST['notes']) : '';
//$location_id=isset($_POST['location_id']) ? mysql_real_escape_string($_POST['location_id']) : '';
$ipid=isset($_POST['ipid']) ? mysql_real_escape_string($_POST['ipid']) : '';
$sql="UPDATE addresses
SET notes='$notes', location_id='$location_id'
WHERE ipid = '$ipid'";
mysql_query($sql) or die(mysql_error());
No, POST/GET values are never null
. The best they can be is an empty string, which you can convert to null
/'NULL'
.
if ($_POST['value'] === '') {
$_POST['value'] = null; // or 'NULL' for SQL
}