从MySql数据库中搜索并以超链接的形式显示结果


Searching from MySql database and display the results as a hyperlink

这是我的代码,我想做的是显示我的朋友的名字在另一个页面作为超链接,当一个链接被点击,我想显示数据。

<?php
$con=mysqli_connect("localhost","root","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM friends");

while($row = mysqli_fetch_array($result))
{
echo "<p>" . $row['FirstName'] . "</p>";
echo "<p>" . $row['LastName'] . "</p>";
echo "<p>" . $row['Email'] . "</p>";
echo "<p>" . $row['Address'] . "</p>";
}
mysqli_close($con);
?>
<?php
$con=mysqli_connect("localhost","root","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM friends");

while($row = mysqli_fetch_array($result))
{?>php
<a href=<?php "echo "<p>" . $row['FirstName'] . "</p>";"?>> `your page name`</a><?php
echo "<p>" . $row['LastName'] . "</p>";
echo "<p>" . $row['Email'] . "</p>";
echo "<p>" . $row['Address'] . "</p>";
}
mysqli_close($con);
?>

您的文件从问题更改:

while($row = mysqli_fetch_array($result))
{
echo "<p>" . $row['FirstName'] . "</p>";
echo "<p>" . $row['LastName'] . "</p>";
echo "<p>" . $row['Email'] . "</p>";
echo "<p>" . $row['Address'] . "</p>";
}

while($row = mysqli_fetch_array($result))
{
echo '<a href="show.php?UserId='.$row['UserId'].'"> . $row['FirstName'] . "</a>";
}

show.php

$con=mysqli_connect("localhost","root","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if(isset($_GET['UserId'])){
if(is_numeric($_GET['UserId'])){
$UserId = (int)$_GET['UserId'];
$result = mysqli_query($con,"SELECT * FROM friends WHERE UserId= $UserId");
if(count($result)){
while($row = mysqli_fetch_array($result))
{
echo "<p>" . $row['FirstName'] . "</p>";
echo "<p>" . $row['LastName'] . "</p>";
echo "<p>" . $row['Email'] . "</p>";
echo "<p>" . $row['Address'] . "</p>";
}}}}

重要:我不确定什么是UserId列名,所以改变它

还有,请检查语法错误

尝试将其与数据库外的增量ID连接。所以好友表中的每一行都必须有唯一的ID。通过这种方式,您可以连接它并从好友表中获取行数据。

所以你的好友表必须是这样的:

friend_id (unique id)
firstname
lastname
email
address

你的代码可以是这样的(这是不保存从任何攻击):

<?php
$con = mysqli_connect("localhost","root","abc123","my_db");
if (mysqli_connect_errno()) {
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if(isset($_GET['friendid'])) { 
    $result = mysqli_query($con,"SELECT * FROM friends");
    while($row = mysqli_fetch_array($result)) {
       echo "<p>" . $row['FirstName'] . "</p>";
       echo "<p>" . $row['LastName'] . "</p>";
       echo "<p>" . $row['Email'] . "</p>";
       echo "<p>" . $row['Address'] . "</p>";
       echo "<p><a href='"_YOUR_SCRIPT_URL_HERE_?friendid=".$row['friend_id']."'" target='"_self'">Details</a></p>";
    }
} else {
   $result = mysqli_query($con,"SELECT * FROM friends WHERE friend_id = '".$_GET['friendid']."'");
   $row = mysqli_fetch_assoc($result);  
   echo "<p>" . $row['FirstName'] . "</p>";
   echo "<p>" . $row['LastName'] . "</p>";
   echo "<p>" . $row['Email'] . "</p>";
   echo "<p>" . $row['Address'] . "</p>";  
} 
mysqli_close($con);
?>