我目前有这个: require_once( 'auth.php');
auth.php:
session_start();
if(!isset($_SESSION['SESS_MERCHANT_ID']) || (trim($_SESSION['SESS_MERCHANT_ID']) == '')) {
header("location: login-form.php");
exit();
}
mybadges.php:
$mybadges = mysql_query("SELECT badge_id
FROM badges WHERE merchant_id = $current_userid ORDER BY badge_id DESC");
while ($result = mysql_fetch_array($mybadges)){
$badge_id = $result['badge_id'];
}
我想知道如何将$result['badge_id'];
存储在$ _SESSION数组中(例如$_SESSION['badges']
?)
答案 0 :(得分:1)
'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(因为你的代码无法确定,你需要什么):
$badges = array();
while ($row = mysql_fetch_array($res)) {
$badge_ids[] = $row['badge_id'];
}
$_SESSION['badges'] = $badge_ids;
一般来说,要存储任何会话,只需将任何内容分配给会话变量:
$_SESSION['badges'] = $badge_ids;
没什么大不了的。
一个SESSION数组变得非常简单。 $_SESSION['badges']
是要使用的常规变量。
请注意,您只能保存标量,数组和对象。不是资源。
答案 1 :(得分:0)
如果我很了解您的需求,您可以这样做:
$_SESSION['badges'] = $result['badge_id'];
答案 2 :(得分:0)
php会话支持多个dimesion数组。
$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"]
我不建议将项目分成太多文件。通常,您不需要会话变量。不要犹豫,询问有关您的应用程序的一般结构的想法。它可以为你节省很多时间。
答案 3 :(得分:0)
确保mybadges.php包含auth.php,否则您将无法启动会话。我假设你拥有的是它,但它在上面的代码中没有显示出来。假设你已经包含了auth.php,那就像用sputnick说的一样
$_SESSION['badges'] = $result['badge_id'];