PHP Update只更新最后一条记录


PHP Update only updates last record

我有一个表单,其中使用用户输入并与数据库上的相同值进行比较,如果输入无效,则拒绝并且不更新。

当用户输入正确时,表单就会转发它,我的代码从该输入中找到相应的ID,然后更新它。

但是到目前为止,它所做的是更新最后一条记录。

下面是我的代码:

我真的很抱歉,它有点长,所以请耐心等待。我还是个学生,完全是个新手。
require("connect.php");
$query = mysql_query("SELECT * FROM driver LEFT JOIN vehicle ON driver.vehicle_id = vehicle.vehicle_id");
while($driverlist = mysql_fetch_array($query)){
                            $vehiclestatus = $driverlist['v_status'];
                            $driver = $driverlist['d_fname'];
                            $driver_id =$driverlist['driver_id'];
                            $v_model = $driverlist['v_model'];
                            $plate_number = $driverlist['plate_number'];
                            $vehicleid = $driverlist['vehicle_id'];
                            echo '<tr>';
                            echo '<td>'.$driver.'</td>';
                            echo '<td>'.$driver_id.'</td>';
                            echo '<td>'.$v_model.'</td>';
                            echo '<td>'.$plate_number.'</td>';



                        echo '</tr>';
}




if(isset($_POST['edit'])){
    $vehicle_id = $_POST['vehicle_id'];
    $driverid = $_POST['driver_id'];
               require("connect.php");
                       mysql_query("UPDATE vehicle RIGHT JOIN driver ON vehicle.vehicle_id = driver.driver_id  SET v_status = '1'   WHERE driver.vehicle_id = '".$vehicle_id."' AND driver_id = '".$driverid."'")
                or die(mysql_error());
                   }
if(isset($_POST['update']))
                {
                   $vehicle_id = $_POST['vehicle_id'];
                   $driverid = $_POST['driver_id'];
                       require("connect.php");
                mysql_query("UPDATE vehicle RIGHT JOIN driver ON vehicle.vehicle_id = driver.driver_id SET v_status = '0' WHERE driver.vehicle_id = '".$vehicle_id."' AND driver_id = '".$driverid."'")
                or die(mysql_error());


                header('Location: drivers.php');
                }

if(!empty($_POST['registerbtn']))
{
    $driver = $_POST['driver'];
    require("connect.php");

                        $match_driver = mysql_query("SELECT * FROM driver WHERE d_fname = '$driver'");
                        $rows = mysql_num_rows($match_driver);



                        if($rows != 0)
                        {
                            while($row_driver = mysql_fetch_array($match_driver))
                            {

                                $a_fname = $row_driver[2];
                                $a_id = $row_driver[0];
                            }
                        }
                        error_reporting(0);
                        if($driver == $a_fname){
                        require("connect.php");
                        mysql_query("UPDATE trip_reservation SET driver_id = '".$a_id."' WHERE trip_id = '".$tripid."'");
                        //mysql_query("INSERT INTO trip_reservation (trip_id, driver_id) VALUES('".$tripid."', '".$a_id."') ON DUPLICATE KEY UPDATE trip_id = '".$tripid."'")or die(mysql_error());

                        echo "Driver Added Successfully";
                        }
                        else{
                            echo "The Driver is not found in the database <br>
                            Please input a valid Driver.";
                        }

}


else {
    echo $registerform;
    }
?>

为什么在更新单个表上的记录时要连接表。其次,比较的是没有更新的表上的WHERE子句

而不是

"UPDATE vehicle RIGHT JOIN driver ON vehicle.vehicle_id = driver.driver_id SET v_status = '0' WHERE driver.vehicle_id = '".$vehicle_id."' AND driver_id = '".$driverid."'"

这样做

"UPDATE vehicle SET v_status = '0' WHERE id = '".$vehicle_id."' AND driver_id = '".$driverid."'"

这是假设你的车辆表有一个主键字段名为id和一个外键字段命名为driver_id

是的,它应该只更新一个记录