使用SQL生成的名称在PHP中链接

时间:2015-05-24 12:28:12

标签: php mysql

我编写了以下代码来从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类型的最后一个。我试图找出代码,以便当我点击其中一个生成的名称时,会显示其余的信息(国家,电子邮件等)。

2 个答案:

答案 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

另外,请注意这些漏洞:

SQL Injections

Cross-site scripting