PDA

Просмотр полной версии : временно сохранить result


Илья К
02.12.2005, 14:21
Доброго времени соток!
Вопрос, вероятно, тесно связан с в предыдущим сообщением. Однако знаю по опыту, что ставить больше одной проблемы в сообщении опасно -- игнорируют...;) Потом приходится либо долго об этом кричать, чтоб заметили, либо создавать новую тему. :)
Так вот, можно ли в ПХП сохранять result MySQL-запроса в каком-нидубь виде на сервере?

Спасибо.

Skubent
02.12.2005, 14:42
result (integer) существует исключительно в рамках текущего соединения и собственно данные хранятся в БД, так что - доставай потихоньку и складируй куда захочешь, в файл, в сессию, в другую БД...

Илья К
02.12.2005, 21:14
Это означает, что страница A может сделать запрос mysql_query("SELECT * FROM table;");, и, получив result, передать его "ключ", положим, через POST странице B, которая выдаст данные, запросив их в БД по переданному ей "ключу" result'а?

Илья К
03.12.2005, 17:11
Люди хелп!!!
Как передать result-id из скрипта A скрипту B, чтобы последний мог запросить у базы селектированные данные (хранящиеся, как я понимаю во временной таблице).
Пробовал через $_SESSION -- не идет!

est.php

<?php
session_start();
?>
<?php
if($_SESSION["result"])
{
#echo $_SESSION["result"];
$result = $_SESSION["result"];
echo return_entry($result, 0, "id");
}
?><form action="test_select.php" method="get" name="form" id="form">
<input type=hidden name=command value=select>
<select name=table>
<option value=cx_article>cx_article</option>
<option value=cx_category>cx_category</option>
<option value=cx_factory>cx_factory</option>
</select>
<input type="submit" name="button_submit" id="button_submit" value="SUBMIT!">
</form>

est_select.php
<?php
session_start();
?>
<?php
########## HEADER START ##########
include ("default.php");
########## HEADER END ##########
?>
<?php
if(@$_REQUEST["command"] == "select")
{
$result = mysql_query('SELECT * FROM cx_article;');
$_SESSION["result"] = $result;
#echo return_entry($result, 0, "text_de");
#if($_SESSION["result"])
#{
# echo "<a href=test.php>test.php</a>";
#}
header("Location: test.php");
}
?>

KBA-KBA
03.12.2005, 20:15
и не получится так, т.к. при переходе на другую страницу ты закрываешь соединение и соответственно уничтажаешь result в самой БД
не понимаю зачем тебе ето, сделай еще одни запрос к бд и живи спокойно.
если выборка по индеку это будет быстро.

Илья К
04.12.2005, 14:12
и не получится так, т.к. при переходе на другую страницу ты закрываешь соединение и соответственно уничтажаешь result в самой БД
не понимаю зачем тебе ето, сделай еще одни запрос к бд и живи спокойно.
если выборка по индеку это будет быстро.Ты обязательно поймешь зачем, если чуточку внимательнее прочтешь предыдущие сообщения... ;)

Решение найдено. Может, это не совсем то, что я хотел... Если result уничтожается, то, может, можно передать не его ID для последующего обращения, а сам result -- через SESSION? Напрямую
$_SESSION["result"] = $result;не получается, передает 0. (ПОЧЕМУ?)
Приходится сериализировать:

test.php<?php
session_start();
?>
<?php
$new = unserialize($_SESSION["result"]);
echo $new["0"]["text_de"];
?><form action="test_select.php" method="get" name="form" id="form">
<input type=hidden name=command value=select>
<select name=table>
<option value=cx_article>cx_article</option>
<option value=cx_category>cx_category</option>
<option value=cx_factory>cx_factory</option>
</select>
<input type="submit" name="button_submit" id="button_submit" value="SUBMIT!">
</form>
test_select.php
<?php
session_start();
?>
<?php
$result = mysql_query("SELECT * FROM cx_article;");
$new = array();
while($foo = mysql_fetch_assoc($result)) {
$new[] = $foo;
}
$_SESSION["result"] = serialize($new);
header("Location: test.php");
?>Ну вот. И еще один вопрос, кто знает: что в итоге такое result -- временная таблица, временный файл, объект?
Спасибо.

KBA-KBA
04.12.2005, 16:40
что такое результ читай тут http://ru.php.net/manual/en/language.types.resource.php
---
а то что ты написал в test_select.php - это то что тебе ответил Skubent

Илья К
04.12.2005, 17:39
что такое результ читай тут http://ru.php.net/manual/en/language.types.resource.phpПонял, бум разбираться.
а то что ты написал в test_select.php - это то что тебе ответил SkubentДа, правда. Skubent, пардон. Проблема была в том, что я не знал, как упаковать данные в $_SESSION.

Всем спасибо!

Minras
05.12.2005, 13:59
насчет result добавить в общем-то нечего, а по поводу решения проблемы - на мой взгляд, здесь должно помочь либо кеширование данных, либо сохранение в сессии результатов запроса