如何设置与<a> link as a session variable, when clicked

时间:2016-03-22 20:18:06

标签: php mysql session

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 个答案:

答案 0 :(得分:0)

在脚本的开头你需要输入

session_start();

然后,您可以通过将数据库中的每个鸟名称推送到此数组中,将所有鸟类名称保存在会话变量中。

$_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可以使用session_start();继续会话,并访问$_SESSION['birdNames']以获取所有鸟类名称。

但是,我怀疑这不是你想要的。如果您希望sort.php只处理用户点击的特定鸟名,您不应该使用会话变量,它应该是一个URL参数。

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

然后sort.php可以使用$_GET['id']来获取用户点击的鸟的ID。

相关问题