【问题标题】:Session Value always equals last instance会话值始终等于最后一个实例
【发布时间】:2019-11-08 20:48:39
【问题描述】:

我有一个正在运行 SQL 查询的页面。我正在显示查询结果的每一行的信息。我现在正在尝试实现一种方法来更新正在显示的内容的信息。

我的理解是,为了从一个页面到另一个页面获取信息,您需要使用会话。

我的代码显示来自 MySQL 表的信息,然后在它下面让用户选择编辑表单中的信息,然后将其发送到另一个文件

【问题讨论】:

  • 您是正确的,您的会话在每个循环中都会被替换。如果你愿意,可以将 $_SESSION['toyid'] 设为一个数组。现在的问题是,您的表单如何告诉toyid 使用什么?如果需要,请将 toyid 包含在表单中,方法是将其放入隐藏输入中,而不是使用 $_SESSION
  • 当然,总是使用准备好的语句。不要只是将值直接连接到查询
  • @CarlBinalla 是的,这是一个长期项目,所以我正在研究所有连接的小东西,而不是我只想让它首先工作。你能解释一下隐藏输入的想法吗?
  • @CarlBinalla 好的,谢谢你的想法!我也想尝试找出一种使用 SESSION 的方法,但我无法完全理解它

标签: php html session


【解决方案1】:

一种简单的方法是使用<input type="hidden">,这样您就可以在表单中包含$row['Toy_ID']

类似这样的:

$row = $result->fetch_assoc();
while ($row){

    echo "Toy Name: " . $row['Toy_Name'] . "<br>" . 
     "Store Name: . $row['Store_Name'] . "<br>" . 
     "Cost: " . $row['Cost'] . "";

    echo "<form action='update.php' method='post'>" . 
    "<input type='hidden' name='toyid' value='".$row['Toy_ID']."'>" . // here's the hidden input, which you can call by using `$_POST['toyid']`
    "<label>Toy Name: </label><input name='tname'; value='" . $row['Toy_Name'] . "'><br>" . 
    "<label>Store Name: </label><input name='storename'; value='" . $row['Store_Name'] . "'><br>" .
    "<label>Cost: </label><input name='cost'; value='" . $row['Cost'] . "'><br>" . 
    "<input type='submit' value='Submit'>" .            
    "</form></div><br><br>";


    $row = $result->fetch_assoc();
}

然后更改您的查询以使用$_POST['toyid'] 而不是$_SESSION['toyid']

【讨论】:

    猜你喜欢
    • 2013-06-17
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 2021-07-21
    • 2017-01-18
    • 1970-01-01
    相关资源
    最近更新 更多