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 YOLO检测微调结果p为1
  • ¥20 求快手直播间榜单匿名采集ID用户名简单能学会的
  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题