2016-05-13 85 views
0

我目前正在创建我的网站的账号管理系统,我决定增加一个功能,它使我宣布的天气特定帐户有效或无效。数据从我的mysql表中检索。PHP - 获取表行的id点击

$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功能谢谢

+1

你应该阅读有关_GET $全局变量。您可以在URL parametr通过例如ID这样status.php?ID = $ ID,然后在status.php获取变量$ ID = $ _GET [ '身份证'] – pr0metheus

回答

0

通ID参数,

status.php?id=$id; 

status.php

$id = $_GET['id']; 
+0

这是新的我。谢谢! –

+0

欢迎您,请将此答案投票为已接受答案 – AJ93

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注入。

+0

我明白了。非常感谢你! –

0

在PHP中没有onclick函数,但是您可以在每行上创建一个表单,该表单包含所在行的值。使用该表单只需发送一个帖子或获取请求回到状态.PHP。将它添加到会话中可能不是一个好主意。

而不是一个按钮,你也可以创建一个链接修改你的循环,以便有一个属性名为$ ROWID和你的循环中增加它的。

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

也许,你真正想要的是在这里使用GET超全局。您可以切换 为

然后,你status.php页面上使用$ _GET [ “用户id”]而不是$ _SESSION [ID]。

而且,你不需要一段时间的状态页。您应该检查结果的数量,如果是1则意味着用户存在,那么你只是做一个$的getData = mysqli_fetch_assoc($查询)未经而