我无法根据所选选项插入值。因此,如果从下拉列表中选择类型1,则选择类型2的情况 2.In 则给出错误/甚至在选择类型2但仅给出错误时尝试保留null值。
include_once('db.php');
if(isset($_POST['submit'])) {
$id = mysqli_real_escape_string($db ,$_POST['id']);
$Type = mysqli_real_escape_string($db ,$_POST['type']);
$Date = mysqli_real_escape_string($db ,$_POST['date']);
$Treat = mysqli_real_escape_string($db ,$_POST['treat']);
if($Type=="1")
{
$sql= "INSERT INTO set1(id,type,date,Treat)
VALUES('$id','$Type','$Date','$Treat')";
$query = mysqli_query($db, $sql) or die(mysqli_error($db));
if(!$query)
echo "You have to fill all values";
else
echo "successfully inserted";
}
else
{
$sql= "INSERT INTO set1(id, type, date)
VALUES('$id', '$Type', '$Date')";
$query = mysqli_query($db, $sql);
if(!$query)
echo mysqli_error();
else
//echo "successfully inserted";
echo"<script> alert('Data inserted Successfully'); window.close(); window.opener.location.reload(true);</script>";
}
}
?>
是的,你需要评估$Type而不是 Type(这可能是一个保留字,如果是这样,则总是计算为 false(。可能只处理您的第二个$sql查询。
获得 eval 语句后,仔细检查第一个$sql字符串:
"INSERT INTO set1(id,type,date,Treat)
VALUES('$id','$Type','$Date','$Treat',)"
不是有效的 SQL 语句 - 它末尾有一个额外的逗号
未定义的索引:处理这意味着
1- name="treat"
未在您的 HTML 中定义
2-你的 html 应该是这样的
<input type="text" name="treat">
并更改以下内容
if(Type=="1")
{
跟
if($Type==1)
{
您的完整网页
<td class="desc" width="46%" align="right">Treat</td>
<td class="desc2" width="54%" align="left">
<span class="desc1">
<select name="treat" style="width:36mm">
<option value="">Select</option>
<?php
$sql = "SELECT treat FROM add_treat ORDER BY treat " ;
$result = mysqli_query($db,$sql);
while ($row = mysqli_fetch_array($result)) { ?>
<option value="<?php echo $row['treat']; ?>"></option><?php echo $row['treat']; ?></option>
<?php }
?>
</select>