PHP - 获取单击表格行的ID

时间:2016-05-13 00:03:37

标签: php mysql

我目前正在创建我网站的帐户管理系统,我决定添加一项功能,让我可以宣布特定帐户处于活动或非活动状态。数据是从我的mysql表中检索的。

$query = mysqli_query($DBConnect,"SELECT * from REG");
echo "<table class = 'table'  style = 'width:90%;text-align:center'>";
        while($getData = mysqli_fetch_assoc($query))
        {
            $username = $getData['uname'];
            $fname = $getData['fname'];
            $mname = $getData['mname'];
            $lname = $getData['lname'];
            $bday = $getData['bday'];
            $email = $getData['email'];
            $contact = $getData['contact'];
            $gender = $getData['gender'];
            if($getData['userlevel'] == 1)
            {
                $userlevel = "user";
            }
            else
            {
                $userlevel = "admin";
            }
            if($getData['status'] == 1)
            {
                $status = "active";
            }
            else
            {
                $status = "disabled";
            }

            echo "<tr>";
            echo "<td>$username</td><td>$fname</td><td>$mname</td><td>$lname</td><td>$bday</td><td>$email</td><td>$contact</td><td>$gender</td><td>$userlevel</td><td>
            <a href ='..\status.php' >$status </a></td></tr>";

        }
        echo "</table>";

这是status.php的内容

session_start();
$DBConnect = mysqli_connect("localhost", "root","","kenginakalbo")
or die ("Unable to connect".mysqli_error());


$query = mysqli_query($DBConnect,"SELECT * from REG where id = '$_SESSION[id]'");
        while($getData = mysqli_fetch_assoc($query))
        {
            $status = $getData['status'];
            echo "'$_SESSION[id]'";
        }

if($status == 1)
{
    $query = mysqli_query($DBConnect, "UPDATE REG SET status = 0 where id = '$_SESSION[id]'");
}
else if ($status == 0)
{
    $query = mysqli_query($DBConnect, "UPDATE REG SET status = 1 where id = '$_SESSION[id]'");
}

header("Location: admin/login.php");

我需要做的是点击行的ID并在我的会话中声明它,以便可以在“status.php”文件中使用它。但是在这段代码中,表中的最后一个id是由于循环而被声明到会话中的id。如何获取所单击行的id的值? (有点像php中的onClick函数吗?谢谢。

4 个答案:

答案 0 :(得分:1)

传递id参数,

status.php?id=$id;
status.php

中的

$id = $_GET['id'];

答案 1 :(得分:0)

变化:

   echo "<td>$username</td><td>$fname</td><td>$mname</td><td>$lname</td><td>$bday</td><td>$email</td><td>$contact</td><td>$gender</td><td>$userlevel</td><td>
    <a href ='..\status.php' >$status </a></td></tr>";

为:

   echo "<td>$username</td><td>$fname</td><td>$mname</td><td>$lname</td><td>$bday</td><td>$email</td><td>$contact</td><td>$gender</td><td>$userlevel</td><td>
    <a href ='..\status.php{$getData['id']}' >$status </a></td></tr>";

并在您的status.php中将$_SESSION['id']更改为$_GET['id']。但请确保首先通过mysql_real_escape_string($_GET['id'])或通过PDO阻止SQL注入。

答案 2 :(得分:0)

PHP中没有onclick函数,但是您可以创建一个表单,每行上都有一个按钮,用于保存它所在行的值。让该表单只需要发送一个帖子或获取请求回到状态。 PHP。将它添加到会话可能是一个坏主意。

您也可以创建一个链接修改循环,而不是按钮,这样就有一个名为$ rowid的属性,并在循环中递增它。

<a href="/status.php?rowid=<?php echo $rowid; ?>"></a>

答案 3 :(得分:0)

也许,你真正想要的是在这里使用GET超全球。你可以切换 对于

然后,在status.php页面上使用$ _GET [&#34; userid&#34;]而不是$ _SESSION [id]。

此外,状态页面您不需要一段时间。您应该检查结果的数量,如果它是1则意味着用户存在,然后您只需执行$ getData = mysqli_fetch_assoc($ query)而不用while