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.

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

报告相同问题?

悬赏问题

  • ¥15 如何让子窗口鼠标滚动独立,不要传递消息给主窗口
  • ¥15 如何能达到用ping0.cc检测成这样?如图
  • ¥15 关于#DMA固件#的问题,请各位专家解答!
  • ¥15 matlab生成的x1图不趋于稳定,之后的图像是稳定的水平线
  • ¥15 请问华为OD岗位的内部职业发展通道都有哪些,以及各个级别晋升的要求
  • ¥20 微信小程序 canvas 问题
  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验