Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 08.02.2013
Сообщений: 106
Interbase

Кэширование

27.01.2017, 06:13. Показов 489. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, у меня есть вопрос.
Имеется функция, которая добавляет записи в БД, сразу же показывая их в виде таблички в этом же диалоговом окне без перезагрузки, ниже скину код. Но она правильно работает только при заранее созданной записи в основной таблице, данные же из этой функции идут в дополнительную, которые соединены с записями в основном по ID. Сейчас же у меня к программе другое требование - нужно, чтобы запросы функции уходили в кэш, а не в бд, но табличка так же заполнялась данными, а уже после подтверждения создания данных в основной таблице, переходили в БД. Кажется, что не понятно объяснил, но если что, то постараюсь конкретней сформулировать. Возможно ли сделать такую функцию?
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
<div id="div_emp_view"><?= html_emp_view($doc) ?></div>
   <fieldset>
        <legend>Добавить</legend>
        <table class="grid">
            <tr class="s8">
            <td><b>Должность:</b>
            <?=popup_menu('dolj_0', $spr_dolj) ?></td>
            <td><b>Отделение:</b>
            <?= popup_menu('otd_0', $spr_otd) ?></td>
  <?php if($doc > 0) {?>
            <td id="addbutton"><button type="button" onclick="$.callPHP('dlg_emp.php','add_emp',$('#form_dlg_emp').serialize());">+</button> - добавить</td></tr>
  <?php }?>
        </table>
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
function html_emp_view($doc)
{
  ob_start();
  $spr_dolj = ibase_popup_values("select dlj, ndlj from n_dlj order by ndlj");
  $dolj = ibase_select_column("select n_mps.dolj from n_doc left join n_mps on n_mps.mpp = n_doc.mpp
                                where n_doc.doc ={$doc} and n_mps.st > 0"); 
  $spr_otd = array(0 => '') + ibase_popup_values("select otd, notd from n_otd order by notd");
  $otd = ibase_select_column("select n_mps.otd from n_doc left join n_mps on n_mps.mpp = n_doc.mpp
                               where n_doc.doc ={$doc} and n_mps.st > 0");
  $mpp = ibase_select_value("select mpp from n_doc where doc = {$doc}");
  $mpp = intval($mpp);
  $mps = ibase_select_column("select kmp from n_mps where st > 0 and mpp = {$mpp}");
  if($doc > 0)
  {?>
    <fieldset id="mpsgrid">
    <legend>Список</legend>
    <table class="grid">
              <tr class="s8">
              <td>Должность</td>
              <td>Отделение</td>
              <td align="center">Удалить</td>
              </tr>
       
    <?php
    for($i = 0; $i < count($mps); $i++)
    {
        if($mpp != 0)
        {
            ?>
            <tr class="s8">
                <td><input type="hidden" name="emp_arr[]" id="emp_arr" value="<?= $mps[$i] ?>">
                    <?= popup_menu('dolj_'.$mps[$i], $spr_dolj, $dolj[$i]) ?></td>
                <td><?= popup_menu('otd_'.$mps[$i], $spr_otd, $otd[$i]) ?></td>
                <td align="center">
                    <input type="checkbox" id='delst_<?=$mps[$i]?>' name='delst_<?=$mps[$i]?>' value='1'>
                </td>
            </tr>
    <?php
        }
    }
    ?>
        <tr class="s8">
            <td align="right" colspan="3">
                <button type="button" id="savebutton" onclick="$.callPHP('dlg_emp.php','change_emp',$('#form_dlg_emp').serialize());">V</button> - сохранить изменения
            </td>
        </tr>
    </table>
    </fieldset>
    <?php
  }
  return ob_get_clean();
}
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function add_emp(jQueryResponse $J)
{
    global $dlg;
    $doc = $J->get_integer('doc');
    $ndoc = $J->get_p('_ndoc');
    $mpp = ibase_select_value("select mpp from n_doc where doc = {$doc}");
    $mpp = intval($mpp);
    $mps = ibase_select_value("select max(kmp) from n_mps");
    $mps = intval($mps) + 1;
    $dolj = $J->get_integer('dolj_0');
    $otd = $J->get_integer('otd_0');
    $kmp = $J->get_integer('kmp');
    if($kmp > 0)
    {
        my_ibase_execute("insert into n_mps (kmp, fio, mpp, st, tv, dolj, otd, spz)
                          values ({$mps},'{$ndoc}',{$mpp},1,1,{$dolj},{$otd},{$spz})");
        my_ibase_execute("update n_doc set doc_plot = {$mps} where doc = {$doc}");
    }
    $J->html('div_emp_view',html_emp_view($doc));
    $J->script("jQuery.notify.add('Выполнено');");
}
Добавлено через 20 часов 7 минут
По вопросу отбой, просто сделал через массив построение таблицы, выбирая данные из БД.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.01.2017, 06:13
Ответы с готовыми решениями:

Кэширование операторов
Есть 3 оператора,каждый из них выдает цифры,нужно сделать кэширование каждого оператора,чтоб не гонять скрипт каждый раз. Может кто то...

Кэширование данных один раз в 5 минут
Интересует как можно сделать кеширование данных ? чтобы сделать один запрос к БД в течение 5 минут , потом снова . К примеру зашло 200...

Кэширование
Доброго вечера, может кто подкинуть внятный пример по кэшированию ActiveDataProvider? Что-то ничего доходчивого не нахожу в сети (или плохо...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.01.2017, 06:13
Помогаю со студенческими работами здесь

Кэширование
В сити пишут, что кэшировать ответ сервера на клиенте, можно с помощью HTTP заголовка Expires. Мой код &lt;?php ...

Кэширование в PHP
Если у вас такой вопрос: У МЕНЯ КУЧА ЗАПРОСОВ К БАЗЕ ПРИ КАЖДОМ ОТКРЫТИИ СТРАНИЦЫ.... ЕСЛИ ЗАПУСТИТЬ БОЛЬШЕ НАРОДУ, ТО САЙТ УПАДЕТ...

Кэширование данных
Помогите, вот у меня на каждой странице выбирается вся информация о текущем авторизированном юзере: SELECT * FROM `users` WHERE `id_user`...

Кэширование страницы
Здравствуйте, может кто подсказать? В общем прикрутил к форме капчу. Система такая: есть пхп скрипт(secpic.php), который формирует...

Кэширование get запросов браузером?
Я пробовал так делать: if (! isset($_GET,$_GET,$_GET) ) { header(&quot;HTTP/1.1 403 Forbidden&quot;); exit; } header('Cache-Control:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru