我编写了以下代码来从SQL数据库生成信息:
<?php
$search1 = "SELECT Name FROM users";
if($mysqli->query($search1) == TRUE)
{
echo "You have successfully searched the request";
}
$result = $mysqli->query("SELECT Name FROM users");
echo '<table border=1px>';
echo'<th>Name</th>';
echo $row;
while($row=$result->fetch_array(MYSQLI_ASSOC))
{
echo'<tr>'; // printing table row
echo '<td>'.$row['Name'].'</td>';
echo'</tr>';
}
echo '</table>';
?>
这会在表格中生成一个名称列表。表中还有其他列,例如Country,Email,Hobby和Date Signed up。所有这些都是VARCHAR,除了DATE类型的最后一个。我试图找出代码,以便当我点击其中一个生成的名称时,会显示其余的信息(国家,电子邮件等)。
答案 0 :(得分:1)
做类似的事情:
echo '<td><a href=\"userinfo.php?username='.$row['Name'].'\">'.$row['Name'].'</td>';
然后在userinfo.php中,阅读$_GET['username']
参数以进行类似于上面的查询,如下所示:
$search1 = "SELECT * FROM users where Name=?";
然后将参数$_GET['username']
设置为预准备语句(如果您想避免MySQL注入)。
答案 1 :(得分:0)
您可以使用以下SQL来获取将在列表页面中使用的信息,在您的情况下将是标识符列和名称列(您有标识符列,对吗?如果没有,请再次检查您的数据库结构 - 有什么不对的。)
SELECT ID, Name FROM `users`
然后您可以在应用中创建额外的页面,例如show.php,您将每个记录的标识符作为$ _GET参数传递,例如show.php?ID = 5
在那里你应该创建另一个查询:
SELECT * FROM `users` WHERE `ID` = $_GET['id']; /* that's not secure, read below */
获得该数据后,您可以将其列出并完成。
如果要创建单页应用程序,可以使用CSS隐藏可用信息,并在用户单击用户名时显示该信息。阅读jQuery。你甚至可以使用AJAX。这是你的选择。
如果您想让一切变得更好,可以尝试使用PDO。
另外,请注意这些漏洞: