数据库表没有得到更新,但查询正在执行,文本框中的数据正在回显

时间:2016-02-10 18:20:12

标签: php mysql

我有一个页面,其中包含一个html表,其中包含在php函数的帮助下从数据库中检索的数据。表格中的一列是编辑按钮。单击编辑按钮,导航到更新表单页面。我的数据库中的行是 para_id =是参数编号,id =用户id,parameter_no = row id,para_date,para_time,reading,type

progpre.php(表页)

<?php
         if(!$blood_pressure) { 
            echo '<td><h4>Nothing To Display. Add In Details<h4><td>'; 
                               }                                                       
         else {
           foreach ($blood_pressure as $single) {
            echo "<tr>";
               echo "<td>$single[para_date]</td>";
               echo "<td>$single[para_time]</td>";
               echo "<td>$single[reading] $single[type]</td>";
               echo "<td><form action='updatepressure.php' method='GET'><input type='hidden' name='edit' value='$single[parameter_no]'><input type='submit' value='Edit' class='btn btn-primary' onclick='updatepressure.php'></form></td>";
              echo "</tr>";
             }
           }
   ?>

updatepressure.php(更新页面)

if(isset($_POST['submit']))
        {
              $_edit=print_r( $_GET['edit']);

              $para_date = print_r($_POST['para_date']);   
              $para_time = print_r($_POST['para_time']);         
              $reading = print_r($_POST['reading']);
              $type = print_r($_POST['type']);
              //$parameter_no = print_r($_POST['edit']);




               global $conn;
  if ($stmt = $conn->prepare("UPDATE `tracking_para` SET `para_date`=?,`para_time`=?,`reading`=?,`type`=? WHERE `parameter_no`=$_edit ")) echo "hi";


             {
    $stmt->bind_param("ssss", $para_date, $para_time, $reading, $type);
    $stmt->execute();
    $result = $stmt->execute();
}

}
    ?>

我在哪里出错了。

2 个答案:

答案 0 :(得分:1)

您确定要将print_r()的输出插入数据库吗?

如果是这样,这里的错误是您没有为print_r()的调用设置$ output参数。此参数默认为false,因此它不会返回您希望插入数据库的字符串。

更新您的代码,如下所示:

if(isset($_POST['submit']))
        {
              $_edit=print_r( $_GET['edit'],true);

              $para_date = print_r($_POST['para_date'],true);   
              $para_time = print_r($_POST['para_time'],true);         
              $reading = print_r($_POST['reading'],true);
              $type = print_r($_POST['type'],true);
              //$parameter_no = print_r($_POST['edit'],true);

              ...

答案 1 :(得分:0)

您使用POST

 if(isset($_POST['submit']))

但是使用GET发送数据

echo "<td><form action='updatepressure.php' method='GET'><input type='hidden' name='edit' value='$single[parameter_no]'><input type='submit' value='Edit' class='btn btn-primary' onclick='updatepressure.php'></form></td>";

这种方式无法正常工作..

尝试在所有代码部分使用POST