单击时如何将与<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.

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.