PHP数据库UPDATE功能只修改第一行? [英] PHP database UPDATE function only modified the first row?

查看:128
本文介绍了PHP数据库UPDATE功能只修改第一行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
<?php
if (!mysqli_connect_errno($con)) {

    $queryStr = "SELECT * " .
            "FROM crewlist";
}
$result = mysqli_query($con, $queryStr);
while ($row = mysqli_fetch_array($result)) {

    echo "<tr>.<th>" . $row["crew_name"] . "<br></br>" . "</th>";
    echo "<th>" . $row["crew_rank"] . "</th>";
    echo "<th>" . $row["start_date"] . "</th>";
    echo "<th>" . $row["end_date"] . "</th>";
    echo "<th>" . $row["watchkeeping"] . "</th>";
    echo "<th>" . $row["active"] . "</th>";
    echo "<td><a href=\"editcrew.php?id=" . $row['crew_id'] . "\">Edit</a>";

    echo "<td><a href=\"delete.php?id=" . $row['crew_id'] . "\">Delete</a>";
}
?>

editcrew.php

<table>
    <form action="handlecrewedit.php" method="post">
        <tr>
            <td>Crew Name:</td>
            <td><input type="text" name="CrewName" id ="CrewName"required></td>     
        </tr>
        <tr>
            <td>Crew Rank:</td>
            <td><input type="text" name="CrewRank" id="CrewRank" required></td>     
        </tr>
        <tr>
            <td>Start Date:</td>
            <td><input type="text" name="StartDate" id="StartDate" required></td>       
        </tr>
        <tr>
            <td>End Date:</td>
            <td><input type="text" name="EndDate" id="EndDate" required></td>       
        </tr>
        <tr>
            <td>Payroll No:</td>
            <td><input type="text" name="PayrollNo" id="PayrollNo" required></td>       
        </tr>
        <tr>
            <td>Employee No:</td>
            <td><input type="text" name="EmployeeNo" id="EmployeeNo" required></td>     
        </tr>
        <tr>
            <td>Watching Keeping:</td>
            <td><input type="text" name="WatchKeeping" id="WatchKeeping" required></td>     
        </tr>
        <tr>
            <td>Active:</td>
            <td><input type="text" name="Active" id="Active" required></td>     
        </tr>
        <tr>
            <td><input type="submit" value="Submit" ></td>


        </tr>
    </form>
</table>

handlecrewedit.php

<?php

require 'dbfunction.php';
$con = getDbConnect();
$crew_id = $_POST["crew_id"];
$CrewName = $_POST["CrewName"];
$CrewRank = $_POST["CrewRank"];
$StartDate = $_POST["StartDate"];
$EndDate = $_POST["EndDate"];
$PayrollNo = $_POST["PayrollNo"];
$EmployeeNo = $_POST["EmployeeNo"];
$WatchKeeping = $_POST["WatchKeeping"];
$Active = $_POST["Active"];


if (!mysqli_connect_errno($con)) {

$queryStr = "SELECT crew_id " .
        "FROM crewlist"; 
}
$result = mysqli_query($con, $queryStr);
while ($row = mysqli_fetch_array($result)) {        



if (!mysqli_connect_errno($con)) {
    $sqlQueryStr = "UPDATE crewlist SET crew_name = '$CrewName', crew_rank = '$CrewRank', start_date = '$StartDate' "
            . ", end_date = '$EndDate', payroll_no = '$PayrollNo'"
            . ", employee_no = '$EmployeeNo', watchkeeping = '$WatchKeeping', active = '$Active' WHERE crew_id = " . $row['crew_id'] . "";


    }
    mysqli_query($con, $sqlQueryStr);
    header('Location: crewlisting.php');
    mysqli_close($con);
}




mysqli_close($con);
?>

这是我修改条目时的另一个问题。我不太确定如果我可以简单地复制和粘贴我的编辑代码的删除代码,但这里是一些粗糙的表我的表。与删除功能不同,通过选择编辑功能,它会将用户定向到表单页面,并要求用户填写更新的数据。

This is another issue on my modifying entries. I'm not quite sure if I can simply copy and paste my delete code for my edit code, but here is some rough gauge of my table. Unlike the delete function, by selecting the edit function, it directs the user to the form page and it requires them to fill in the updated data.

推荐答案

使用以下代码替换 editcrew.php handlecrewedit.php 文件代码。

editcrew.php

<table>
    <form action="handlecrewedit.php" method="post">
        <input type="hidden" name="crew_id" value="<?php echo $_GET['id']; ?>" />
        <tr>
            <td>Crew Name:</td>
            <td><input type="text" name="CrewName" id ="CrewName"required></td>     
        </tr>
        <tr>
            <td>Crew Rank:</td>
            <td><input type="text" name="CrewRank" id="CrewRank" required></td>     
        </tr>
        <tr>
            <td>Start Date:</td>
            <td><input type="text" name="StartDate" id="StartDate" required></td>       
        </tr>
        <tr>
            <td>End Date:</td>
            <td><input type="text" name="EndDate" id="EndDate" required></td>       
        </tr>
        <tr>
            <td>Payroll No:</td>
            <td><input type="text" name="PayrollNo" id="PayrollNo" required></td>       
        </tr>
        <tr>
            <td>Employee No:</td>
            <td><input type="text" name="EmployeeNo" id="EmployeeNo" required></td>     
        </tr>
        <tr>
            <td>Watching Keeping:</td>
            <td><input type="text" name="WatchKeeping" id="WatchKeeping" required></td>     
        </tr>
        <tr>
            <td>Active:</td>
            <td><input type="text" name="Active" id="Active" required></td>     
        </tr>
        <tr>
            <td><input type="submit" value="Submit" ></td>


        </tr>
    </form>
</table>

handlecrewedit.php

<?php
require 'dbfunction.php';
$con = getDbConnect();
$crew_id = $_POST["crew_id"];
$CrewName = $_POST["CrewName"];
$CrewRank = $_POST["CrewRank"];
$StartDate = $_POST["StartDate"];
$EndDate = $_POST["EndDate"];
$PayrollNo = $_POST["PayrollNo"];
$EmployeeNo = $_POST["EmployeeNo"];
$WatchKeeping = $_POST["WatchKeeping"];
$Active = $_POST["Active"];

if (!mysqli_connect_errno($con)) {
    $sqlQueryStr = "UPDATE crewlist SET crew_name = '$CrewName', crew_rank = '$CrewRank', start_date = '$StartDate' "
            . ", end_date = '$EndDate', payroll_no = '$PayrollNo'"
            . ", employee_no = '$EmployeeNo', watchkeeping = '$WatchKeeping', active = '$Active' WHERE crew_id = " . $crew_id . "";
    mysqli_query($con, $sqlQueryStr);
}
header('Location: crewlisting.php');
mysqli_close($con);
?>

这篇关于PHP数据库UPDATE功能只修改第一行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆