segazav
3.04.2013 - 22:19
Из
базы данных выводятся уникальные номера строк 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
3.04.2013 - 22:48
В чем проблема?
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
3.04.2013 - 23:06
Спасибо, а то уже весь измучился((
Немного не понял, а как сюда: $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
3.04.2013 - 23:10
$result = mysql_query("SELECT id FROM .... WHERE .....",$db);
$_SESSION['id'] = array();
while($myrow = mysql_fetch_assoc($result))
$_SESSION['id'][] = $myrow['id'];
segazav
3.04.2013 - 23:16
Цитата (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
3.04.2013 - 23:18
echo '<pre>';
var_dump($_SESSION['id']);
echo '</pre>';
segazav
3.04.2013 - 23:23
Цитата (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
3.04.2013 - 23:33
Блин, теперь не пойму как подставлять по порядку значения $_SESSION['id'] в переменную $id после обновления stranica.
php:
exit("<html><head><meta http-equiv='Refresh' content='0; URL=stranica.php?id=$id'></head></html>");
innovate
3.04.2013 - 23:44
Открываешь страницу, делаешь refresh.
Цитата |
подставлять по порядку значения $_SESSION['id'] |
Зачем ?
segazav
4.04.2013 - 00:03
Цитата (innovate @ 3.04.2013 - 19:44) |
Открываешь страницу, делаешь refresh.
Цитата | подставлять по порядку значения $_SESSION['id'] |
Зачем ? |
Объясню по другому.
Допустим есть страница stranica.php?id=$id, на которой выводится запись из базы по номеру id из первого значения $_SESSION['id'].
И в это же время должна быть ссылка на эту же страницу stranica.php?id=$id, но уже со следующим номером $id из $_SESSION['id'] и так пока не кончатся записи в $_SESSION['id']
Что то типа перезагрузки страницы после клика на ссылку, но уже с выводом следующего значения.
Это я все делаю для того, чтобы разгрузить количество запросов к базе данных, попросили администраторы хостинга, типа превышает суточный лимит запросов процессора к базе данных. А то сейчас при каждом клике на ссылку "следующая запись" номер следующей записи как и сама запись каждый раз вытаскивается из базы.
А так вытащил штук 30 в сессию, использовал, вытащил следующие 30 и т.д., т.е. уже запросов к базе на 30 меньше.
сдаётся мне, что нужен самый обычный пагинатор...
segazav
4.04.2013 - 00:17
Проблема вся в том, что нужно выводить не все записи, а с определенными номерами в базе данных.
Пагинатор есть на странице со списком 30 заголовков отобранных сообщений spisok.php, нажимая на которые открывается полное сообщение в другой странице stranica.php на новой вкладке.
Прочитал, нужно закрыть вкладку и кликнуть по следующему заголовку.
А так прочитал, нажал на ссылку и открылась эта же страница stranica.php но уже с другим сообщением - экономия и времени и запросов к базе.
Конечно можно поставить пагинатор и на страницу с полным текстом сообщений, но опять же каждое обновление страницы будет отправлять запрос к базе, чтобы посчитать количество оставшихся, необходимых записей.
innovate
4.04.2013 - 00: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 - Гугли.
segazav
4.04.2013 - 02:01
Цитата (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 - Гугли. |
Спасибо большое за помощь!
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.