Php 将mysql结果存储在会话数组中供以后使用(通过in_数组进行检查)

Php 将mysql结果存储在会话数组中供以后使用(通过in_数组进行检查),php,mysql,Php,Mysql,我目前有: 需要_一次('auth.php') 我想知道如何存储$result['badge_id']在$\u会话数组中(如$\u会话['badges']?)如果我很了解您的需求,您只需执行以下操作: $_SESSION['badges'] = $result['badge_id']; php会话支持多维数组 $members=array(); foreach(mysql_fetch_array($memberresultset) as $key->$value) $members[]=

我目前有: 需要_一次('auth.php')


我想知道如何存储
$result['badge_id']
在$\u会话数组中(如
$\u会话['badges']
?)

如果我很了解您的需求,您只需执行以下操作:

$_SESSION['badges'] = $result['badge_id'];

php会话支持多维数组

$members=array();
foreach(mysql_fetch_array($memberresultset) as $key->$value)
$members[]=$value;

foreach($members as $mv)
$_SESSION["MEMBER"][]=$mv;
比如说,它会起作用

还有这样的事情:

$_SESSION["badgeidnumbers"][]=$result["badgeid"]
但您需要使用foreach命令添加它们,获取多行

额外的括号用于使用新的索引号添加到数组中。你可以在第二个括号里写任何东西

您还可以使用一些格式,如

$_SESSION["badgeidnumbers"][$result["badgeid"]]=$result["badgename"]

我不建议将项目划分为太多的文件。通常,您不需要会话变量。请毫不犹豫地询问有关应用程序总体结构的想法。这可能会为您节省大量时间。

请确保mybadges.php包含auth.php,否则您将无法启动会话。我假设这就是你所拥有的,但在上面的代码中没有这样显示。假设您已经包含auth.php,只需按照sputnick对

$_SESSION['badges'] = $result['badge_id'];

更合理的“auth.php”版本

session_start();
if(empty($_SESSION['SESS_MERCHANT_ID'])) {
    header("location: login-form.php");
    exit();
}

mybadges.php的更合理版本:

$sql = "SELECT badge_id FROM badges WHERE merchant_id = $current_userid ORDER BY badge_id DESC"
$res = mysql_query($sql) or trigger_error(mysql_error()." ".$sql); 
如果只有一个bagde_id要存储:

$row = mysql_fetch_array($res);
$_SESSION['badge'] = $row['badge_id'];
如果有许多id(从代码中无法确定您需要什么):

通常,要在会话中存储任何内容,只需将该内容分配给会话变量:

$_SESSION['badges'] = $badge_ids;
没什么大不了的

一个会话数组将与您编写的内容完全相同<代码>$\u会话['badges']是一个可使用的常规变量


请注意,您只能保存标量、数组和对象。不是资源。

Friend Ugur。会话通常与项目文件的数量无关。它通常用于将数据传递给同一个脚本。我希望你解决了所有的注射问题,因为你有时间给出一些建议。@Col.Shrapnel至少我们都同意不使用会话阵列。事实上,我没有注射问题,我的主机提供商保持magic quotes打开。magic quotes与注射无关。一点关系也没有,上面说你必须关掉它。所以,你所有的魔术报价业务只是关闭它。这就是全部。在你开始考虑注射之前,你已经把它关掉了。即使根本没有SQL处理,也必须将其关闭。明白了吗?事实上,我给你写了完整的答案,解释了-你读过吗?
$badges = array();
while ($row = mysql_fetch_array($res)) {
    $badge_ids[] = $row['badge_id'];
}
$_SESSION['badges'] = $badge_ids;
$_SESSION['badges'] = $badge_ids;