更新PHP会显示双重数据

时间:2017-10-17 18:30:09

标签: php database mysqli phpmyadmin

所以我和我的一群学生正在为公司制作网络应用程序。在此页面上,我们尝试向不同的创业公司展示不同的组号。我们还希望有更新此号码的选项。更新部分工作正常,它显示了他/她的名字背后的正确组号。这里真正的问题是,如果我更新其中一个不同的组号并重新加载页面,则所有组都具有与网页上显示的相同的编号,但在数据库中它显示了我已更新的正确编号

所以我想立即显示正确的更新号码。这是我下面的PHP代码。

<?php

session_start();

require 'header.php'; // 

require 'includes/dbh.inc.php';

// Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
$update = mysqli_real_escape_string($conn, $_POST['group']);

    $sql = "SELECT user_uid, user_name, group_id, active FROM groups";
    $result = $conn->query($sql);



    if ($result->num_rows > 0) {
        // output data of each row
        while ($row = $result->fetch_assoc()) {
            if(!isset($_POST['groupnumber'])) {
                $gnum = $row['group_id'];
            }
            else {
               $gnum = $update;
            }


            echo "<br> Name : " . $row["user_name"] . " - Group number:" . $gnum . "<br> Select new group" .

            "<form method='post'>
            <input type='text' name='group'>
            <button name='groupnumber' value='". $row['user_uid'] ."'> Update </button>
            </form>". "<br>";
        }
    } else {
        echo "0 results";
    }


    if(isset($_POST['groupnumber'])){//if the submit button is clicked
        $id = mysqli_real_escape_string($conn, $_POST['groupnumber']);

        $update = mysqli_real_escape_string($conn, $_POST['group']);



        $query="UPDATE groups SET group_id='$update' where user_uid = $id";

        $conn->query($query) or die("Cannot update");//update or error
        }

    $conn->close();
    ?>

对不起,如果它有点混乱,我还是学生,我只是一个基本的PHP人:)

1 个答案:

答案 0 :(得分:0)

当然可以,这就是你while循环中的内容,这里:

        if(!isset($_POST['groupnumber'])) {
            $gnum = $row['group_id'];
        }
        else {
           // On a POST always show the posted value for all groups
           $gnum = $update;
        }