SQL Update行为异常

时间:2018-11-20 11:56:43

标签: php mysql sql sql-update

从php更新sql数据库时,我面临一种奇怪的行为。我的数据库中有一个表,我正在尝试使用模式更新。该表很简单,仅包含三列。我的页面上有一个触发模式的按钮。该按钮如下:

<a href="#update<?php echo $id;?>" class="btn btn-success btn-xs" data-toggle = "modal" data-target="#update<?php echo $id;?>"></i> Edit</a> 

$ id在包含按钮的循环内获取。因此触发了模态,模态代码如下:

<div id = "update<?php echo $id;?>" class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-hidden="true">
                     <div class="modal-dialog modal-sm">
                      <div class="modal-content">

                        <div class="modal-header">
                          <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span>
                          </button>
                          <h4 class="modal-title" id="myModalLabel2">Edit Project Details</h4>
                        </div>
                        <div class="modal-body">
                         <form method = "POST" action = "update_project.php"> 
                           <input type="hidden" name="id" value="<?php echo $id;?>">
                                <label>Project name</label>
                                    <input type="text" name = "name" class="form-control" value = "<?php echo $row['project_name'];?>">
                                    <br/>                               
                                <label>Status</label>
                                <select name = "status" class = "form-control">
                                    <option value = "Active">Active</option>
                                    <option value = "Inactive">Inactive</option>                            
                                </select>
                                    <br/>
                        </div>
                        <div class="modal-footer">
                          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                            <button  name = "update" class="btn btn-primary">Save changes</button>
                        </div>
                      </div>
                    </div>
                </div>

所有内容均正确显示。当我单击保存更改时,将调用update_project.php,其中包含以下代码:

<?php
include('dbcon.php');

     $id = $_POST['id'];
     $project_name = $_POST['name'];
     $status = $_POST['status'];


         mysqli_query($con,"UPDATE project SET project_name='$project_name', project_status='$status' where project_id='$id'")
     or die(mysqli_error($con)); 


echo "<script type='text/javascript'>alert('Successfully updated project details!');</script>";
        echo "<script>document.location='project.php'</script>";

这是我的问题开始的地方。我在那里没有收到任何错误,但数据库未更新。奇怪的是,仅成功更改了表的最后一个条目,例如,当我将最后一个条目设置为非活动状态时,它被更改,并且当我更改表的另一个条目时,它没有更改,并且将最后一个条目还原活跃起来。

我在其他页面中使用了相同的代码相同的参数,并且可以正常工作,但在这里却不能。有什么事吗为什么如此意外地更新值?

我使用了我在网站上运行的一些代码来报告任何错误,但是没有一个返回任何错误!

作为更新,没有运气,我用<?php echo $id;?>代替了<?php echo $row['project_id'];?>。按钮所在的整个代码:

<?php   
include 'dbcon.php';

$query=mysqli_query($con,"select * from project ORDER BY project_id ASC")or die(mysqli_error($con));
while ($row=mysqli_fetch_array($query)){
$id=$row['project_id'];
$total=0;
$query1 = mysqli_query($con,"SELECT * FROM budget WHERE project_id='$id'");
while ($row1=mysqli_fetch_array($query1)){
$total=$total+$row1['amount'];}
?>
<tr>
    <td colspan="2"><?php echo $row['project_name'];?></td>
    <td><?php echo $total;?></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td><?php echo $row['project_status'];?></td>
    <td style="width:300px">
    <a href="#update<?php echo $row['project_id'];?>" class="btn btn-success btn-xs" data-toggle = "modal" data-target="#update<?php echo $row['project_id'];?>"><i class = "fa fa-pencil"></i> Edit</a>
 &nbsp;
<a href="budget.php?id=<?php echo $id;?>" class="btn btn-success btn-xs" data-target="budget.php?id=<?php echo $id;?>"><i class = "fa fa-pencil"></i> Budget Category</a></td>
                                </tr>

<?php include 'update_project_modal.php';?>
    <?php }?>

经过一些调试后,我得出的结论是$ id值已正确传递给模式(我在模式标题中回显了该值,并且该值与数据库中的值匹配)。问题出在update_project.php中。由于某种原因,$ id值会更改为数据库的最后一个整数。我在消息中回显了它,这是最后一个条目...似乎$ id不会从模式传递到update_project.php页面...

0 个答案:

没有答案