doukao2180 2016-03-22 20:18
浏览 51
已采纳

单击时如何将与<a>链接关联的值设置为会话变量

I have seen examples for this online, but it only seems to break my code. I want to be able to I would like to store a field queried, using the code below in a session variable.

PHP:

<?php

// Collect input
// If an input has been given
if(isset($_POST["aSearch"])) {
  $searchq = $_POST["aSearch"];
  $searchq = preg_replace("#[^0-9a-z]#i","",$searchq); //Can only search words

// Select records if name's match
$sql = "SELECT * FROM birdt WHERE birdName LIKE '%$searchq%'";
}

// Tests if connection is made to the db to query it
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");
  while($row = $result-> fetch_assoc()) {
    // redirect the user to a new page
    echo "<a href='sort.php'> Bird Name: ".$row["birdName"]. "</a><br><br>"; // Important row 
  }
} else {
  echo "0 results";
}

?>

This code can be used to return values from the database depending on the users input. It will return the "birdName" and allow the user to click a queried result to go to the "sort.php" page.

How would you store the returned field "birdName" once/before it's clicked in a session variable, so it can be accessed in the following page?

P.S. I understand my question is quite specific and unideal, but I'm seriously struggling to get this to work, and I'm quite desperate, thanks.

  • 写回答

1条回答 默认 最新

  • dsadsa123111 2016-03-22 21:39
    关注

    At the beginning of the script you need to put

    session_start();
    

    Then you can save all the bird names in an array in a session variable, by pushing each bird name from the database onto this array.

    $_SESSION['birdNames'] = array();
    
    if ($result-> num_rows> 0) {
      readfile("ViewReturn.html");
      while($row = $result-> fetch_assoc()) {
        // redirect the user to a new page
        $_SESSION['birdNames'][] = $row['birdName'];
        echo "<a href='sort.php'> Bird Name: ".$row["birdName"]. "</a><br><br>"; // Important row 
      }
    } else {
      echo "0 results";
    }
    

    sort.php can then use session_start(); to continue the session, and access $_SESSION['birdNames'] to get all the bird names.

    However, I suspect this isn't really what you want. If you want sort.php to just process the specific bird name that the user clicked on, you shouldn't use a session variable, it should be a URL parameter.

    echo "<a href='sort.php?id=" . $row["id"] . "'> Bird Name: ".$row["birdName"]. "</a><br><br>";
    

    Then sort.php can use $_GET['id'] to get the ID of the bird that the user clicked on.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真