您需要将会话变量设为数组,然后将行附加到每个数组片段
session_start();
$ID = ($_SESSION["ID"]);
$sql_1 = "SELECT text FROM Notes WHERE username='test' AND ID = '$ID'";
$result_1 = $conn->query($sql_1);
$_SESSION['data'] = array();
$iCount = 0;
while($fetch = mysqli_fetch_array($result_1)){
echo '<p>'.$fetch['text'].'</p>';
$_SESSION['data'][$iCount] = $fetch['text'];
$iCount++;
}
你可以这样做......
session_start();
$ID = ($_SESSION["ID"]);
$sql_1 = "SELECT text FROM Notes WHERE username='test' AND ID = '$ID'";
$result_1 = $conn->query($sql_1);
$_SESSION['data'] = array();
$iCount = 0;
while($fetch = mysqli_fetch_array($result_1)){
echo '<p>'.$fetch['text'].'</p>';
$_SESSION['data'][$iCount] = $fetch;
$iCount++;
}
foreach ($_SESSION['data'] as $oSessData) {
echo "Text: ", $oSessData['text'], "<br />";
}
在评论中提到:by (user3036342)
// CALL THIS ONLY ONCE, SAY WHEN THE USER LOGS ON... Calling it twice will clear it.
$_SESSION['data'] = array();
session_start();
$ID = ($_SESSION["ID"]);
$sql_1 = "SELECT text FROM Notes WHERE username='test' AND ID = '$ID'";
$result_1 = $conn->query($sql_1);
while($fetch = mysqli_fetch_array($result_1)){
echo '<p>'.$fetch['text'].'</p>';
$_SESSION['data'][] = $fetch['text']; // this will append to the array
}
foreach ($_SESSION['data'] as $oSessData) {
echo "Text: ", $oSessData, "<br />";
}
编辑
最后一个示例将为会话创建一次数组(注意只调用该部分一次),然后 while 循环将在找到单行或多行时附加到该数组。
// CALL THIS ONLY ONCE, SAY WHEN THE USER LOGS ON... Calling it twice will clear it.
session_start();
$_SESSION['data'] = array();
确保上面的代码已经在不同的时间运行过,每次运行这段代码时,它会将数据变量设置为一个空数组。所以当你第一次登录或访问页面时运行它。
下面的代码可以随心所欲地运行,每次它都会将值附加到它上面。
// Store them by id
session_start();
$ID = ($_SESSION["ID"]);
$sql_1 = "SELECT text FROM Notes WHERE username='test' AND ID = '$ID'";
$result_1 = $conn->query($sql_1);
while($fetch = mysqli_fetch_array($result_1)){
echo '<p>'.$fetch['text'].'</p>';
$_SESSION['data'][$ID] = $fetch['text']; // this will assign a by a index/key
}
foreach ($_SESSION['data'] as $oSessData) {
echo "Text: ", $oSessData, "<br />";
}
// or access them directly if they are known...
echo "Text: ", $oSessData[77], "<br />"; // if user 77 is in the array
另一个想法
通过会话变量的外观,您正在将一个帐户打开到会话中.. 获取文本值...如果您随后进入另一个会话或用户会话,您需要将会话数组传输到 php重新生成新会话时的数组。
否则,每次您终止会话时,您都会丢失其中的所有数据。我感觉问题是在您粘贴的代码之前一两步。您是否登录到某些会话的多个会话形式?