Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   временно сохранить result (http://www.flasher.ru/forum/showthread.php?t=72677)

Илья К 02.12.2005 14:21

временно сохранить result HELP!!!
 
Доброго времени соток!
Вопрос, вероятно, тесно связан с в предыдущим сообщением. Однако знаю по опыту, что ставить больше одной проблемы в сообщении опасно -- игнорируют...;) Потом приходится либо долго об этом кричать, чтоб заметили, либо создавать новую тему. :)
Так вот, можно ли в ПХП сохранять 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 код:

<?php 
session_start
();
?>
<?php
if($_SESSION["result"])
{
    
#echo $_SESSION["result"];
    
$result $_SESSION["result"];
    echo 
return_entry($result0"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 код:

<?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

Цитата:

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

Ты обязательно поймешь зачем, если чуточку внимательнее прочтешь предыдущие сообщения... ;)

Решение найдено. Может, это не совсем то, что я хотел... Если result уничтожается, то, может, можно передать не его ID для последующего обращения, а сам result -- через SESSION? Напрямую
PHP код:

$_SESSION["result"] = $result

не получается, передает 0. (ПОЧЕМУ?)
Приходится сериализировать:

test.php
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 код:

<?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

Цитата:

Сообщение от KBA-KBA
что такое результ читай тут http://ru.php.net/manual/en/language.types.resource.php

Понял, бум разбираться.
Цитата:

Сообщение от KBA-KBA
а то что ты написал в test_select.php - это то что тебе ответил Skubent

Да, правда. Skubent, пардон. Проблема была в том, что я не знал, как упаковать данные в $_SESSION.

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

Minras 05.12.2005 13:59

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


Часовой пояс GMT +4, время: 23:39.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.