搜索结果中的PHP链接工作不正常


PHP link in search results not working correct

我有一个小问题,我一直在测试许多变体,但我没有让它工作。我在搜索结果中有一个链接。。(全文搜索工作)

> while($row = mysql_fetch_assoc($query)){
> 
> $id = $row['id'];
> 
> echo '<a href=profile1.php?id= . $row["id"] . >.INFO.</a>';

它将INFO显示为一个链接,当我点击它时,我会跳转到profile1.php,但我没有看到任何结果,它完全是一个空白页面。我得到的网址是/profile1.php?id=

这是我的个人资料.php

<?php
$mysqli = new mysqli("", "", "", ""); /* REPLACE NECESSARY DATA */
/* ESTABLISH CONNECTION */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s'n", mysqli_connect_error());
    exit();
}
$id=$_GET["id"];
if ($stmt = $mysqli->prepare("SELECT name, brand FROM table WHERE id=?")) {
    $stmt->bind_param("d", $id); /* BIND DATA TO QUERY */
    $stmt->execute(); /* EXECUTE QUERY */
    $stmt->bind_result($name, $brand); /* BIND RESULT TO VARIABLE */
    $stmt->fetch(); /* FETCH DATA */
    printf("%s - %s", $name, $brand); /* ECHO DATA */
    $stmt->close(); /* CLOSE STATEMENT */
}
$mysqli->close();
?>

我希望有人能帮我…谢谢!!!

执行此操作。

 echo "<a href=profile1.php?id=$row[id]>INFO</a>";

或者这个。

echo '<a href=profile1.php?id='.$row['id'].'>INFO</a>'

注意:

  • 您将id分配给了一个变量,因此最好将该变量用于链接。您应该学习如何将变量合并到链接中
  • 在内部使用变量时,最好使用单个刻度(')。在查询中不使用单刻度(')是可以的IF绑定的变量是整数类型

你的链接应该是这样的:

 $id = $row['id'];
 echo '<a href="profile1.php?id='.$id.'" >.INFO.</a>';

您的选择查询应该如下所示(profile1.php):

$sql ="SELECT * FROM table WHERE id='".$_GET["id"]."'";

还建议使用mysqli_*,而不是不推荐使用的mysql_* API。阅读此处了解有关SQL注入的更多信息。

如果你把它放在mysqli_*准备好的语句中,它会是这样的(profile1.php):

<?php
  /* RE-ESTABLISH YOUR MYSQL CONNECTION */
  $con = new mysqli("YourHost", "yourUsername", "YourPassword", "YourDB"); /* REPLACE NECESSARY DATA */
  /* CHECK CONNECTION */
  if (mysqli_connect_errno()) {
    printf("Connect failed: %s'n", mysqli_connect_error());
    exit();
  }
  if ($stmt = $con->prepare("SELECT name, brand FROM table WHERE id = ?")){
    $stmt->bind_param("i", $_GET["id"]); /* PARAMETIZE GET ID TO QUERY */  
    $stmt->execute(); /* EXECUTE QUERY */    
    $stmt->bind_result($name, $brand); /* BIND RESULT TO VARIABLE */
    $stmt->fetch(); /* FETCH DATA */
    printf("%s - %s", $name, $brand); /* ECHO DATA */
    $stmt->close(); /* CLOSE STATEMENT */
  }
  $con->close();
?>