我正在尝试显示人员列表。点击列表后,必须显示有关此人的更多详细信息。
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>
在使用会话时,始终显示列表中最后一个人的详细信息。 如何显示相应的细节??
答案 0 :(得分:1)
最后你要在会话变量中保存姓氏$ _SESSION [&#39; selection&#39;] = $ row [&#39; name&#39;];所以你得到了姓氏。while循环结束姓氏,你把它保存在session.you没有使用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>';
}
并在view.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();
?>