dqdmvg7332 2015-01-02 14:58
浏览 63
已采纳

php,sql,html用相应的按钮更新一个唯一的记录

I am new to PHP and SQL and trying to figure out how I can make the HTML Approve (submit) button interact specifically with its corresponding record. Currently when the Approve button is clicked, each of the fields are updated, but the top (first) record available is always the one updated. I would like the user to be able to skip the first record and update a different record. Any and all suggestions/help are greatly appreciated.

$conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or die('there was a problem connecting to the database' . mysql_error());

$sql = "SELECT Part, Lot, Qty, AnodTemp, Amp, SealTemp, PerformedBy, DateTimePerformed, FinalAnodThickness, QtyPass, FinalSealCheck, CheckedBy, DateTimeChecked, id  FROM logs";

$result = $conn->query($sql);




if ($result->num_rows > 0)
{
    while($row = $result->fetch_assoc())
{
    $unapproved = $row['CheckedBy'];
    if($unapproved == null)
    {

        echo "<br><br><br> Part: " . $row['Part']. " / Lot: " . $row['Lot']. " / Qty: " . $row['Qty']. " / AnodTemp: " . $row['AnodTemp']. " / Amp: " . $row['Amp']. " / SealTemp: " . $row['SealTemp']. " / PerformedBy: " . $row['PerformedBy']. " / ID: " . $row['id']; ?>

        <form action="adminapproval.php" method="post">
        Final Anod Thickness:<br>
        <input type="text" name="FinalAnodThickness">
        <br><br>
        Qty Pass:<br>
        <input type="text" name="QtyPass">
        <br><br>
        Final Seal Check:<br>
        <input type="text" name="FinalSealCheck">
        <br><br>


        <input type="submit" id="submit" value="Approve" name="submit">
        <br><br>
        </form> 
        _____________________________________________________________________<br>
        <?php

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

            $FinalAnodThickness= $_POST['FinalAnodThickness'];
            $QtyPass= $_POST['QtyPass'];
            $FinalSealCheck= $_POST['FinalSealCheck'];
            $CheckedBy= $_SESSION['CheckedBy'];
            $id = $row['id'];





            $sql = "UPDATE logs SET FinalAnodThickness = '$FinalAnodThickness', QtyPass = '$QtyPass', FinalSealCheck = '$FinalSealCheck', CheckedBy = '$CheckedBy', DateTimeChecked = now() WHERE id = $id ";
            $conn->query($sql);
            break;
            $conn->close();
            echo "Record Updated.";
            header("Location: adminapproval.php");
         }

       }
   }
}



echo "<br><br> No further items need to be approved at this time.";


?>
  • 写回答

3条回答 默认 最新

  • dsvf46980 2015-01-02 15:46
    关注

    TWO FILES

    adminapproval.php

    <?php
    session_start();
    $conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or die('there was a problem connecting to the database' . mysql_error());
    $sql = "SELECT Part, Lot, Qty, AnodTemp, Amp, SealTemp, PerformedBy, DateTimePerformed, FinalAnodThickness, QtyPass, FinalSealCheck, CheckedBy, DateTimeChecked, id  FROM logs";
    $result = $conn->query($sql);
    
    if ($result->num_rows > 0){
    while($row = $result->fetch_assoc()){
      $unapproved = $row['CheckedBy'];
            if($unapproved == null){
                echo "<br><br><br> Part: " . $row['Part']. " / Lot: " . $row['Lot']. " / Qty: " . $row['Qty']. " / AnodTemp: " . $row['AnodTemp']. " / Amp: " . $row['Amp']. " / SealTemp: " . $row['SealTemp']. " / PerformedBy: " . $row['PerformedBy']. " / ID: " . $row['id']; ?>
    
                <form action="adminapproval-exec.php?id=<?php echo $row['id']; ?>" method="post">
                    <input type="hidden" name="id" value="<?php echo $row['id']; ?>" />
                    <input type="hidden" name="checkedby" value="<?php echo $SESSION['CheckedBy']; ?>" />
                    Final Anod Thickness:<br>
                    <input type="text" name="FinalAnodThickness">
                    <br><br>
                    Qty Pass:<br>
                    <input type="text" name="QtyPass">
                    <br><br>
                    Final Seal Check:<br>
                    <input type="text" name="FinalSealCheck">
                    <br><br>
                    <input type="submit" id="submit" value="Approve" name="submit">
                    <br><br>
                </form>
                <?php
            }
        }
    } else {
        echo "<br><br> No further items need to be approved at this time.";
    }
    ?>
    

    adminapproval-exec.php

    <?php
    session_start();
    if (isset($_POST['submit'])){
        $FinalAnodThickness= $_POST['FinalAnodThickness'];
        $QtyPass= $_POST['QtyPass'];
        $FinalSealCheck= $_POST['FinalSealCheck'];
        $CheckedBy= $_POST['CheckedBy'];
        $id = $_GET['id'];
        // OR
        // $id = $_POST['id'];
    
        $sql = "UPDATE logs SET FinalAnodThickness = '$FinalAnodThickness', QtyPass = '$QtyPass', FinalSealCheck = '$FinalSealCheck', CheckedBy = '$CheckedBy', DateTimeChecked = now() WHERE id = $id ";
        $conn->query($sql);
        $conn->close();
        // echo "Record Updated.";
        header("Location: adminapproval.php");
    }
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 易康econgnition精度验证
  • ¥15 线程问题判断多次进入
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致