只有我的If语句被激活,而不是我的其他,即使我没有为id提供输入

时间:2011-11-21 19:50:24

标签: php mysql

这是我的代码,出于某种原因,我是否为输入id指定了一个值,它似乎提供了一个,因为只运行if语句。此外,当我为id(或不是)提供值时,不会更新或更改任何内容。

<?php
$culture = $_POST["culture"];
if (isset($_POST["id"])) {
    $UID = $_POST["id"];
    mysql_query("UPDATE culture SET cult_desc='$culture' WHERE cult_id=$UID");
    echo $UID . "  " . $culture . " If Statement Activated";
}
else {
     mysql_query("INSERT INTO culture
             VALUES(cult_desc='$culture')");
             echo $culture . " Else Statement Activated";
}
?>

这是html代码:

    <form action="addculture.php" method="POST">
          <span><input type="text" size="3" name="id" />
          <input type="text" name="culture" />
        <input type="submit" value="add" /></span>
    </form>

2 个答案:

答案 0 :(得分:5)

如果您的ID值来自浏览器中的<input>字段,那么isset($_POST['fieldname'])将始终为真。即使输入字段中没有数据,也始终向服务器提交输入字段。

如果您想检查字段中是否有内容,请执行以下操作:

if (isset($_POST['id']) && ($_POST['id'] !== '')) {
   ...
}

那将检查id字段是否存在(应该是),如果它包含除空字符串以外的东西 - 所有来自$ _POST / $ _ GET的数据都是一个字符串,即使它是数字数据。

答案 1 :(得分:0)

请尝试使用if语句:

if (isset($_POST["id"]) && trim($_POST["id"]) != "") {

如果您从表单发布数据并且您有id输入,我相信id POST变量将被设置为空。