我目前正在创建我的网站的帐户管理系统,我决定添加一个功能,使我能够声明特定帐户是活动的还是非活动的。数据是从我的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的函数吗?谢谢。
传递id参数,
status.php?id=$id;
在status.php
中
$id = $_GET['id'];
更改:
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注入。
PHP中没有onclick函数,但您可以在每行上创建一个按钮来保存所属行的值的表单。让该表单只需向status.PHP发送一个post或get请求。将其添加到会话中可能是个坏主意。
您也可以创建一个链接来修改循环,这样就有一个名为$rowid的属性,并在循环中递增它,而不是按钮。
<a href="/status.php?rowid=<?php echo $rowid; ?>"></a>
也许,您真正想要的是在这里使用GET超全局。你可以切换对于
然后,在status.php页面上使用$_GET["userid"]而不是$_SESSION[id]。
此外,您不需要一段时间就可以进入状态页。您应该检查结果的数量,如果是1,则表示用户存在,然后只执行$getData=mysqli_fetch_assoc($query),而不使用while