[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Занести несколько значений в одну сессию
segazav
Из базы данных выводятся уникальные номера строк id:

$result = mysql_query("SELECT id FROM .... WHERE .....",$db);
$myrow = mysql_fetch_array ($result);


Как занести в сессию $_SESSION['id'] все значения $myrow["id"]?

Чтобы на другой странице выводить их по очереди:

foreach ($_SESSION['id'] as $value) {
echo $value."<br>";
}
innovate
В чем проблема?
session_start();

$arr = array(2, 3, 4, 5);

for($i = 0; $i < count($arr); $i++) {
$_SESSION["id"][$i] = $arr[$i];
}

foreach($_SESSION["id"] as $v) {
echo $v."<br>";
}
segazav
Спасибо, а то уже весь измучился((

Немного не понял, а как сюда: $arr = array(2, 3, 4, 5); добавить значения $myrow["id"]?
Или здесь просто нужно узнать количество элементов массива $myrow["id"]?

Пробовал, так:

$arr = array($myrow["id"]);
for($i = 0; $i < count($arr); $i++) {$_SESSION["id"][$i] = $arr[$i];}


но выводится только одно значение $myrow["id"]
killer8080
$result = mysql_query("SELECT id FROM .... WHERE .....",$db);
$_SESSION['id'] = array();
while($myrow = mysql_fetch_assoc($result))
$_SESSION['id'][] = $myrow['id'];
segazav
Цитата (killer8080 @ 3.04.2013 - 19:10)
$result = mysql_query("SELECT id FROM .... WHERE .....",$db);
$_SESSION['id'] = array();
while($myrow = mysql_fetch_assoc($result))
$_SESSION['id'][] = $myrow['id'];

Попробовал вывести:

foreach ($_SESSION['id'] as $value) {
echo "$value <br>";
}


получил одно очень длинное число из цифр
killer8080
echo '<pre>';
var_dump($_SESSION['id']);
echo '</pre>';
segazav
Цитата (killer8080 @ 3.04.2013 - 19:18)
echo '<pre>';
var_dump($_SESSION['id']);
echo '</pre>';

Спасибо большое!!!!!!!!!

И так тоже выдало нормально:

foreach ($_SESSION['id'] as $value) {
echo "$value <br>";
}


просто в сессии видимо осталось ещё прежнее значение и поэтому выдало хрен знает что, но после обработки unset($_SESSION['id']); все стало нормально!

Ещё раз спасибо вам, очень простой и рабочий способ :D
segazav
Блин, теперь не пойму как подставлять по порядку значения $_SESSION['id'] в переменную $id после обновления stranica.php:

exit("<html><head><meta http-equiv='Refresh' content='0; URL=stranica.php?id=$id'></head></html>");
innovate
Открываешь страницу, делаешь refresh.

Цитата
подставлять по порядку значения $_SESSION['id']

Зачем ? blink.gif
segazav
Цитата (innovate @ 3.04.2013 - 19:44)
Открываешь страницу, делаешь refresh.

Цитата
подставлять по порядку значения $_SESSION['id']

Зачем ? blink.gif

Объясню по другому.

Допустим есть страница stranica.php?id=$id, на которой выводится запись из базы по номеру id из первого значения $_SESSION['id'].

И в это же время должна быть ссылка на эту же страницу stranica.php?id=$id, но уже со следующим номером $id из $_SESSION['id'] и так пока не кончатся записи в $_SESSION['id']

Что то типа перезагрузки страницы после клика на ссылку, но уже с выводом следующего значения.

Это я все делаю для того, чтобы разгрузить количество запросов к базе данных, попросили администраторы хостинга, типа превышает суточный лимит запросов процессора к базе данных. А то сейчас при каждом клике на ссылку "следующая запись" номер следующей записи как и сама запись каждый раз вытаскивается из базы.

А так вытащил штук 30 в сессию, использовал, вытащил следующие 30 и т.д., т.е. уже запросов к базе на 30 меньше.
rooor
сдаётся мне, что нужен самый обычный пагинатор...
segazav
Проблема вся в том, что нужно выводить не все записи, а с определенными номерами в базе данных.
Пагинатор есть на странице со списком 30 заголовков отобранных сообщений spisok.php, нажимая на которые открывается полное сообщение в другой странице stranica.php на новой вкладке.

Прочитал, нужно закрыть вкладку и кликнуть по следующему заголовку.
А так прочитал, нажал на ссылку и открылась эта же страница stranica.php но уже с другим сообщением - экономия и времени и запросов к базе.

Конечно можно поставить пагинатор и на страницу с полным текстом сообщений, но опять же каждое обновление страницы будет отправлять запрос к базе, чтобы посчитать количество оставшихся, необходимых записей.
innovate
Цитата
И в это же время должна быть ссылка на эту же страницу stranica.php?id=$id, но уже со следующим номером $id из $_SESSION['id']

foreach($_SESSION["id"] as $k => $v) 
if(intval($_GET["id"]) == $v && isset($_SESSION["id"][$k+1]))
echo "<a href=\"stranica.php?id=".$_SESSION["id"][$k+1]."\">".$_SESSION["id"][$k+1]."</a>";;

сдаётся мне, что нужен самый обычный пагинатор... +1 - Гугли.
segazav
Цитата (innovate @ 3.04.2013 - 20:46)
Цитата
И в это же время должна быть ссылка на эту же страницу stranica.php?id=$id, но уже со следующим номером $id из $_SESSION['id']

foreach($_SESSION["id"] as $k => $v) 
if(intval($_GET["id"]) == $v && isset($_SESSION["id"][$k+1]))
echo "<a href=\"stranica.php?id=".$_SESSION["id"][$k+1]."\">".$_SESSION["id"][$k+1]."</a>";;

сдаётся мне, что нужен самый обычный пагинатор... +1 - Гугли.

Спасибо большое за помощь!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.