准备好的语句返回未定义的索引错误

时间:2017-05-05 19:01:52

标签: php mysql

我真的很难破解这个坚果。

MySQL数据库由以下列名组成:id, stores, results

我在表单中有一个按钮。当我点击“选择”按钮时,列名records应该以+1更新。每次我点击按钮我都会收到错误:

Notice: Undefined index: id in /Applications/MAMP/htdocs/practiceProject/updaterecords.php on line 8 Updated Succesfull

我正在阅读stackoverflow,因为我没有得到id的值。因此我添加了$id = $_POST['id'];,但仍然遇到了相同的错误。

有人知道这里出了什么问题吗?

的index.php

<form action="updaterecords.php" method="post">
   <button type="submit" name="selectstore" >Select</button>
    <?php include 'updaterecords.php' ?>
  <button type="button" data-dismiss="modal">Close</button>
</form>

updaterecords.php

<?php error_reporting(E_ALL); ini_set('display_errors', 1);

if (mysqli_connect_errno()) { echo "Error: no connexion allowed : " . mysqli_connect_error($mysqli); } 
?>
<?php
include 'dbconnection.php';

if(isset($_POST['selectstore'])) {
$id = $_POST['id']; // Line 8

    $stmt = $mysqli->prepare("UPDATE stores SET records = records + 1 WHERE id= ?");

    $stmt->bind_param('i', $id);   

    if ($stmt->execute()) { 
        $success = true;
    }

    $stmt->close();

    $mysqli->close();   
    if($success) {
        echo "Updated Succesfull";
    } else {
        echo "Failed: " .  $stmt->error;
      }
    }

?>

2 个答案:

答案 0 :(得分:0)

你的绑定参数应该以{{1​​}}开头 还要确保发布:id

$id = $_POST['id'];

<强> updaterecords.php

<form action="updaterecords.php" method="post">
<!-- test the id -->
<input type="hidden" value="333" name="id" />
   <button type="submit" name="selectstore" >Select</button>
   <!-- removed php include don't need it here -->
  <button type="button" data-dismiss="modal">Close</button>
</form>

答案 1 :(得分:0)

您没有为id发布值。 你的php脚本应该如何知道要更新哪一行? 您的html中没有输入字段(或类似内容),因此未定义$_POST['id']