如何获取记录集,将其存储在数组中,然后使该数组成为会话的值?这是我提出的代码(下面集成了答案):
$colname_getAC = "-1";
if (isset($_GET['tech_id'])) {
$colname_getAC = $_GET['tech_id'];
}
mysql_select_db($database_localhost, $localhost);
$query_getAC = sprintf("SELECT area_code, tech_id FROM zip_zip WHERE tech_id = %s", GetSQLValueString($colname_getAC, "int"));
$getAC = mysql_query($query_getAC, $localhost) or die(mysql_error());
$row_getAC = mysql_fetch_assoc($getAC);
$totalRows_getAC = mysql_num_rows($getAC);
session_start();
// store session data
$_SESSION['area_code']= array();
while ($row_getAC = mysql_fetch_assoc($getAC)) {
$_SESSION['area_code'][] = $row_getAC['area_code'];
}
这只会返回“数组”,而不是在我调用会话时的区号。
在会议上,我也尝试了这个:
$_SESSION['area_code']= $results[];
但是这只是让页面在空白的屏幕上停止了。
原因是我想在不同的页面上插入此会话中的值。
答案 0 :(得分:1)
首先 - 你必须改变你的逻辑:
由此:
$results = array();
do {
$results[] = $row_getAC['area_code'];
} while ($row_getAC = mysql_fetch_assoc($getAC));
$_SESSION['area_code']= $results;
到此:
$results = array();
while ($row_getAC = mysql_fetch_assoc($getAC))
{
$results[] = $row_getAC['area_code'];
}
$_SESSION['area_code']= $results;
我刚刚测试过 - PHP可以将数组存储为会话变量,并且可以在其他页面上使用。
BTW - 您使用了 session_start()吗?
<强>更新强>
你必须在这里使用后者,因为(例如)你的SQL查询可能会返回空结果(没有记录)所以你不应该在while块中执行代码,因为没有数据可以获取。
答案 1 :(得分:1)
你把它存储为一个数组,你可以在这里看到它:
var_dump($_SESSION['area_code']);
我真的不明白,你究竟想要什么。
这也是错误的$_SESSION['area_code']= $results[];
<强>编辑:强> 将您的代码更改为:
$colname_getAC = "-1";
if (isset($_GET['tech_id'])) {
$colname_getAC = $_GET['tech_id'];
}
mysql_select_db($database_localhost, $localhost);
$query_getAC = sprintf("SELECT area_code, tech_id FROM zip_zip WHERE tech_id = %s", GetSQLValueString($colname_getAC, "int"));
$getAC = mysql_query($query_getAC, $localhost) or die(mysql_error());
$totalRows_getAC = mysql_num_rows($getAC);
session_start();
// store session data
$_SESSION['area_code']= array();
while ($row_getAC = mysql_fetch_assoc($getAC)) {
$_SESSION['area_code'][] = $row_getAC['area_code'];
}