在多个会话中存储数据

时间:2010-11-18 06:30:15

标签: php session

您正在尝试做的是将所有5个文件ID放入会话中,以便稍后移动相应的物理文件名。 $ sid sessionID对每个都是相同的,查询会提取唯一的$ data [Id]。限制设置为5,如何确保每个会话从结果中获取唯一数据[Id],如果只有3个结果,则不使用最后2个...

    $results = mysql_query("SELECT * FROM test WHERE Language = '".$lang."' ORDER BY id DESC, CreationDate DESC LIMIT $start, 5");

    while ($data = mysql_fetch_array($results)) {
        $Record_Count = $Record_Count + 1;

session_start();
$sid = session_id();

        unset($_SESSION['file_1'], $file_1);
    $_SESSION['file_1'] = $sid . '-' . $data[Id] . '-slow'; 
        unset($_SESSION['file_2'], $file_2);
    $_SESSION['file_2'] = $sid . '-' . $data[Id] . '-slow'; 
        unset($_SESSION['file_3'], $file_3);
    $_SESSION['file_3'] = $sid . '-' . $data[Id] . '-slow'; 
        unset($_SESSION['file_4'], $file_4);
    $_SESSION['file_4'] = $sid . '-' . $data[Id] . '-slow'; 
        unset($_SESSION['file_5'], $file_5);
    $_SESSION['file_5'] = $sid . '-' . $data[Id] . '-slow'; 

        }

2 个答案:

答案 0 :(得分:1)

您一次只能运行一个会话。

要确保只有三个结果,请将收集的ID放入数组并测试其长度。

if(count($collectedIDs) != 3) { $collectedIDs[] = $newID; }

答案 1 :(得分:1)

使用2维数组,如:$_SESSION['files'][]

session_start();
$sid = session_id();
unset($_SESSION['files']);
$Record_Count = 0;
while ($data = mysql_fetch_array($results) && $Record_Count < 5) {
      $Record_Count = $Record_Count + 1; 
      $_SESSION['files'][] = $sid . '-' . $data[Id] . '-slow'; 
}