如何使SQL查询结果成为唯一页面的链接

时间:2016-03-05 22:56:56

标签: php mysql sql

我希望能够从用户的查询中获得结果,以便在用户点击它时能够打开新页面。返回的查询取决于用户搜索的内容。

我认为可以用来解决这个问题,但我不确定如何。

目前我可以搜索结果并返回匹配的记录,但我实际上无法点击它们,我很难找到一种方法来做到这一点,因为我只会发生错误而我找不到任何错误适用的代码。

我正在尝试实施的流程:

  1. 您搜索的内容
  2. 返回匹配结果
  3. 您可以点击结果(我正在尝试的内容)
  4. 打开与该结果相关的页面(也是我正在尝试的内容)
  5. 我只是希望能够以允许用户点击它们的方式返回我获得的任何记录,例如标准搜索任何网页。

    我的代码如下:

    PHP:

    <?php
    
    // Connect to DB
    $servername = "";
    $username = "";
    $password = "";
    $dbname = "";
    
    // Create connection
    $conn = new MySQLi($servername, $username, $password, $dbname);
    
    // Check connection
    if ($conn->connect_error) {
      die("Connection failed: " . $conn->connect_error);
    }
    
    // Collect Data
    // Ensure user input string only has letter characters
    // Unimportant to current problem
    if(isset($_POST["aSearch"])) {
      $searchq = $_POST["aSearch"];
      $searchq = preg_replace("#[^0-9a-z]#i","",$searchq); //Can only search words
    
    // Select records which match the user's input
    $sql = "SELECT * FROM birdt WHERE birdName LIKE '%$searchq%'";
    }
    
    // Tests if the code been inserted
    if ($conn->query($sql)=== TRUE){
      echo "The rows you have searched for are:";
    } else {
      echo "Connection failed: ";
      echo $conn->error;
    }
    
    // Show fields
    $result = $conn->query($sql);
    
    // Output data of each row
    if ($result-> num_rows> 0) {
      readfile("ViewReturn.html"); // Returns the file in an HTML Page
      while($row = $result-> fetch_assoc()) {
        // echo "ID: ".$row["id"]. "<br>";
        echo "Bird Name: ".$row["birdName"]. "<br><br>";
      }
    } else {
      echo "0 results";
    }
    
    // Close connections
    if (!function_exists('mysqli_init') && !extension_loaded('mysqli')) {
      echo "There was an error with MySQLi";
    } else {
      echo "Closing Connections";
    }
    
    $conn-> close();
    exit();
    ?>
    

    例如,如果这返回“Gull”,我怎么能把它作为另一个页面的链接?

    我不确定它是否重要,但我将所有记录都放在一个单独的HTML文件中,如果有必要,我愿意更改。

    我对PHP非常不满,并且坦率地讨厌这种语言,但是提前感谢您抽出时间阅读本文以及任何帮助:¬)

1 个答案:

答案 0 :(得分:0)

我不确定你在readfile中做了什么(&#34; ViewReturn.html&#34;);如果它返回一个完整的HTML,那么回调函数就会出现问题。因为你会有这样的事情:

    <html>

      <body class="">

      </body>
   </html>
         Bird Name: something<br><br>
         Bird Name: something<br><br>

我想你想要这样的东西:

    <html>

      <body class="">
         <a href="yourLink"> Bird Name: something<br><br></a>
         <a href="yourLink"> Bird Name: something<br><br></a>
      </body>
   </html>

为此我改变了你的代码:

// Output data of each row
if ($result-> num_rows> 0) {
  readfile("StartViewReturn.html");
  while($row = $result-> fetch_assoc()) {
    // echo "ID: ".$row["id"]. "<br>";
    echo "<a href="yourLink">Bird Name: ".$row["birdName"]. "</a><br><br>";
  }
  readfile("EndViewReturn.html");
} else {
  echo "0 results";
}

我强烈建议您使用框架。它将帮助您组织代码并更好地理解PHP。一开始它可能令人沮丧但后来你会喜欢它(我使用Symfony2)。