这是我目前可以使用的fetch.php文件,但我似乎无法将php超链接连接到gene.php文件。
我正在考虑如何将html与php分开,以遵循其他建议,但是在如何做到这一点上却很挣扎。
while($row = mysqli_fetch_array($result))
{
$output .= '
<tr>
<td><a href="gene.php?id=' . $row['mRNA'] . '">'.$row["mRNA"].'</a></td>
<td><a href="gene.php?id=' . $row['mRNA'] . '">'.$row["Gene"].'</a></td>
<td>'.$row["Subtype"].'</td>
</tr>
';
}
echo $output;
}
?>
如果可能的话,我希望可以将新的gene.php?id变量作为查询传递回我的gene.php页面上。
<?php
$connect = mysqli_connect("localhost", "root", "", "database");
$id[0] = $_REQUEST['id'];
$query = "SELECT * FROM genenames WHERE mRNA=".$id."";
答案 0 :(得分:1)
尝试使用PDO,在准备好的语句方面更漂亮。
<?php
// userinput is evil
$id = (int)$_REQUEST['id'];
// or
$id = filter_var($_REQUEST['id'], FILTER_SANITIZE_NUMBER_INT);
// abort here, if $id is not valid
// connection config
$host = '127.0.0.1';
$port = 3306;
$name = 'db-name';
$username = 'db-username';
$password = 'db-password';
$options = [
PDO::ATTR_PERSISTENT => false
];
$dsn = 'mysql:host='.$host.';port='.$port.';dbname='.$name;
$result = [];
try
{
$pdo = new PDO($dsn, $username, $password, $options);
$sql = "SELECT * FROM genenames WHERE mRNA=:id";
$params = [
'id' => $id
];
$mode = PDO::FETCH_ASSOC;
$statement = $pdo->prepare($sql);
if($statement->execute($params))
{
$statement->setFetchMode($mode);
$result = $statement->fetchAll();
}
}
catch(PDOException $e)
{
die('Error!: ' . $e->getMessage());
}
$output = '<table>';
// print your rows
foreach($result as $row) {
$output .= '
<tr>
<td><a href="gene.php?id=' . $row['mRNA'] . '">'.$row["mRNA"].'</a></td>
<td><a href="gene.php?id=' . $row['mRNA'] . '">'.$row["Gene"].'</a></td>
<td>'.$row["Subtype"].'</td>
</tr>
';
}
$output .= '</table>';
echo $output;
答案 1 :(得分:0)
更改以下代码 并检查为您工作
$connect = mysqli_connect("localhost", "root", "", "database");
$id = $_REQUEST['id'];
echo $id;//check for id it print or not
$query = "SELECT * FROM genenames WHERE mRNA=".$id."";
或类似的操作,如通过id的索引进行操作
$connect = mysqli_connect("localhost", "root", "", "database");
$id[0] = $_REQUEST['id'];
echo $id[0];//check for id it print or not
$query = "SELECT * FROM genenames WHERE mRNA=".$id[0]."";
但这是一个sql注入问题,您正在允许其他人通过URL传递,我建议您阅读有关SQL注入的信息。使用表格发布数据或使用其他方式将其发送出去以防止您进行sql注入。