首页 > 解决方案 > php a href 显示 mysql 数据库中的数据并将其链接到新页面

问题描述

我有一个正在运行的 php 和 mysql 搜索脚本,显示结果后用户可以单击下面的链接,它将打开一个新页面并显示更多 mysql 信息,我坚持将 ahref 链接($field2name)链接到新页面(获取配置文件.php)。

现在的问题是 getprofile.php 什么也没显示并显示 0 结果,但是我尝试将静态数据放入 getprofile.php 它工作正常并且可以显示来自 mysql 的配置文件数据,谁能告诉我缺少什么?

从搜索页面用户可以单击此链接:

<td><a href="getprofile.php?'.$field2name.'" target = "_blank">'.$field2name.'</td>

获取配置文件.php:

<?php
 $conn = mysqli_connect("localhost","root","password","demo");
 $pkey = mysql_real_escape_string($_GET[$field2name]);
// $pkey = "4027500001"; <-------if i put static data it can show profile data
    
  $query = "SELECT * FROM nhc WHERE code =" . $pkey;
    $result = $conn->query($query);


if ($result->num_rows > 0) {
    echo "<table border='1'><tr><th>code</th><th>Name</th><th>class</th><th>AM</th><th>May GA</th><th>June GA</th></tr>";
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "<tr><td>".$row["code"]."</td> <td>".$row["name"]."</td> <td> ".$row["class"]."</td>  <td>".$row["am"]."</td> <td>".$row["may"]."</td><td>".$row["june"]. "</td></tr>";
  
    }
    echo "</table>";
} else {
    echo "0 results";
}
?>

标签: phpmysql

解决方案


您需要为GET参数命名,以便您可以在 PHP 中访问它:

<td><a href="getprofile.php?code='.$field2name.'" target = "_blank">'.$field2name.'</td>

然后在 PHP 中:

$pkey = mysql_real_escape_string($_GET['code']);

请注意,您应该使用准备好的语句来保护自己免受 SQL 注入;mysql_real_escape_string是不够的(请参阅此问答)。例如:

$query = "SELECT * FROM nhc WHERE code = ?";
$stmt = $conn->prepare($query);
$stmt->bind_param('i', $_GET['code']);
$stmt->execute();
$result = $stmt->get_result();

推荐阅读