gpt4 book ai didi

php - 使用 session 将 PHP 变量发送到另一个页面 :

转载 作者:行者123 更新时间:2023-11-29 13:30:47 25 4
gpt4 key购买 nike

我在处理几个页面时遇到了问题:我想列出数据库中的所有图像(存储的网址),然后让用户单击图像,将他们带到另一个页面,然后提供其余信息从数据库中。

我使用 session 变量发送图像的 ID,然后在其他页面上使用该 ID 在查看之前从数据库中选择信息。我遇到的问题是,它似乎总是显示数据库中最后输入的详细信息,而不是单击的图像变量中的实际信息。

我不确定哪里出了问题,我已经添加了大量 session_destroy() 命令,我认为这是最初的问题,但尚未解决问题,并且似乎只是堵塞我的代码。

任何帮助或指导将不胜感激。

这是我的代码:

第 1 页 - 通过 session 发送变量

<?php
//code to access database

$query = "SELECT * FROM releases";
$result = mysql_query($query);

if(!$result) die ("Database access failed: " .mysql_error());

$rows = mysql_num_rows($result);

for ($j = 0 ; $j < $rows ; ++$j)

{

$row = mysql_fetch_row($result);



echo '<a href="test2.php"><img src="images/releases/' . $row[1] .'" id="' . $row [0] . '"/></a>';
}
$id = $row [0]; //"row 0" is the auto increment of the database id.

if (isset($_SESSION ['id'])){
session_destroy();
}
session_start();
$_SESSION ['id']= $id;

mysql_close($db_server);
?>

第 2 页 - 接收变量,然后使用它访问数据库。

<?php

//code to access database

if (isset($_SESSION ['id'])){
session_destroy();
}
session_start();
$id = $_SESSION['id'];
$query = "SELECT * FROM releases WHERE release_id = $id";
$result = mysql_query($query);

if(!$result) die ("Database access failed: " .mysql_error());

$row = mysql_fetch_row($result);


echo "<img src='images/events/" .$row[1] . "' width= '150' height= '150' /> <br />";
echo "track title: " .$row[2] . "<br />";
echo "artist: " .$row[3] . "<br />";

session_destroy();
mysql_close($db_server);
?>

最佳答案

看看你的代码在做什么:

for ($j ...) {
$row = mysql_fetch_row($result);
... do stuff with $row;
}
$id = $row[0];

您设置$idAFTER循环终止,这意味着您只能从查询结果中获取LAST项。

即使您在循环内设置 $id,您仍然只能在 $_SESSION 中设置单个 id:

for ($j ...) {
$id = $row[0];
$_SESSION['id'] = $id;
}

当循环结束时,$_SESSION 将再次成为最后一个 id。您正在做的事情不需要需要 session ,只需要一个查询变量:

for ($j ...) {
$id = $row[0];
echo "<a href='test.php?id=$id'>click me</a>";
^^^^^^^---note the query string....
}

然后在你的 test.php 页面中:

$id = $_GET['id'];

关于php - 使用 session 将 PHP 变量发送到另一个页面 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19482320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com