如何使用if条件将数据存储到数据库中?

时间:2016-01-19 11:55:00

标签: php mysql

我有一个非常奇怪的问题。这是我的update.php,它通过点击提交按钮将用户日期存储在数据库中:

   <?php
    session_start();

    require('database.php'); 
    require('header.php');

    if(!$user->is_logged_in()){ 
    header('Location: index.php'); 
    } 

    $id = 0;
    $user = $_SESSION['username'];

    if ( !empty($_GET['id'])) {
    $id = $_REQUEST['id'];
    $animal = $_REQUEST['animal'];
    }

    if ( !empty($_POST)) {
    $id = $_POST['id'];

    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sql1 = "UPDATE animals set user1 = ?, date1 = NOW() WHERE id = '$id'";
    $q = $pdo->prepare($sql1);
    $q->execute(array($user));
    Database::disconnect();
    header("Location: index.php");                      
    } 
    ?>

    <form action="update.php" method="post">
    <input type="hidden" name="id" value="<?php echo $id;?>"/>
    <button type="submit"> Submit</button>
    </form>

到目前为止它运作良好。但我需要制定条件,这意味着,只有$animal == 1才能完成这些工作。

现在出现了我的问题。

我只是将我的if条件放在我的sql请求中:

if ($animal == 1){
    $sql1 = "UPDATE animals set user1 = ?, date1 = NOW() WHERE id = '$id'";
            $q = $pdo->prepare($sql1);
}

我需要这个,因为后来我也想写:

   if ($animal == 2){
        $sql2 = "UPDATE animals set user2 = ?, date2 = NOW() WHERE id = '$id'";
                $q = $pdo->prepare($sql2);
    }

但它根本不起作用。如果我使用if-condition,那么我的代码就不再起作用,意味着数据库中没有存储任何内容,并且重定向到index.php也无法正常工作。有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

答案是,我需要写下表格:

action="update.php?id=<?php echo $id; ?>&m=<?php echo $animal; ?>