我正在尝试显示人员列表。单击列表时,必须显示此人的更多详细信息。
members.php:-列出所有成员的页面
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1>Our members are</h1>
<?php
include 'config.php';
session_start();
$sql = "SELECT name from users";
$result = $conn->query($sql);
echo '<table>';
if($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
echo '<tr>';
$_SESSION['selection'] = $row['name'];
echo '<td><a href = "view.php">'.$row['name'].'</a></td>';
echo '</tr>';
}
}
echo '</table>';
$conn->close();
?>
</body>
view.php-显示更多详细信息的页面:
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
include 'config.php';
session_start();
$pkey = $_SESSION['selection'];
$new = "SELECT * FROM users where name = '$pkey'";
$display = $conn->query($new);
$result = $display->fetch_assoc();
echo 'Name:'.$result['name'];
echo 'Rollno:'.$result['rool_no'];
echo 'Description:'.$result['description'];
$conn->close();
?>
</body>
在使用会话时,总是显示列表中最后一个人的详细信息。如何显示相应的详细信息??
最后,您将姓氏保存在会话变量$_session['selection']=$row['name']中;所以你得到了姓氏。while循环以姓氏结束,并将其保存在session中。你不使用session作为数组。
我的建议是不要使用会话。这里不需要会话。
while($row = $result->fetch_assoc())
{
echo '<tr>';
$_SESSION['selection'] = $row['name'];
echo '<td><a href = "view.php">'.$row['name'].'</a></td>';
echo '</tr>';
}
更改members.php 中的这些行
while($row = $result->fetch_assoc())
{
echo '<tr>';
echo '<td><a href = "view.php?name=$row['name']">'.$row['name'].'</a></td>';
echo '</tr>';
}
并在视图中更改这些行。php
<body>
<?php
include 'config.php';
session_start();
$pkey = $_REQUEST['name'];//change this line alone
$new = "SELECT * FROM users where name = '$pkey'";
$display = $conn->query($new);
$result = $display->fetch_assoc();
echo 'Name:'.$result['name'];
echo 'Rollno:'.$result['rool_no'];
echo 'Description:'.$result['description'];
$conn->close();
?>