E-mail Печать

Шаг 8. Сохранение данных в БД

После того как мы ввели данные в форму, при нажатии на кнопку "Сохранить", мы должны сохранить введенные данные в таблице БД. Для этого создадим функцию saveGoodtime() в файле admin.goodtimes.php

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
function saveGoodtime( $option )
{
global $mainframe;

$row =& JTable::getInstance('goodtimes', 'Table');

if (!$row->bind(JRequest::get('post')))
{
echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
exit();
}

$row->review = JRequest::getVar( 'review', '', 'post', 'string', JREQUEST_ALLOWRAW );
$row->id = (int) $row->id;
$row->smoking = (int) $row->smoking;

$date =& JFactory::getDate($row->review_date);
$row->review_date = $date->toMySQL();

if (!$row->store())
{
echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
exit();
}

switch ($task)
{
case 'apply':
$msg = 'Изменения в обзоре сохранены.';
$link = 'index.php?option=' . $option . '&task=edit&cid[]='. $row->id;
break;

case 'save':
default:
$msg = 'Обзор сохранен.';
$link = 'index.php?option=' . $option;
break;
}

$mainframe->redirect($link, $msg);
}

Для начала мы объявляем глобальную переменную $mainframe и текущее сооединение с БД. У переменной $mainframe есть много функций которые мы можем использовать для того чтобы управлять сессией, переменными и заголовками. Также мы создаем $row как экземпляр нашего класса Tablegoodtimes. Далее функция bind() загружает в $row все переменные формы.

Если функция bind() выдает ошибку, то мы выводим предупреждение и возвращаем пользователя к предыдущему шагу.

После того как переменные формы загружены в массив $row мы можем использовать их, далее мы подготавливаем их для записи в БД.

Далее используя функцию store() мы обновляем или же вставляем запись в БД. Здесь т.к. у нас нет значения id то у нас происходит вставка новой записи.

Если происходит ошибка в запросе SQL, то мы выдаем эту ошибку и возвращаем пользователя на шаг назад.

Для того чтобы наша функция сохранения стала работать нужно в файл admin.goodtimes.php в оператор switch() добавить строки:

1
2
3
case 'save':
saveGoodtime( $option, $task );
break;

Теперь откройте адрес http://ваш_сайт/administrator/index.php?option=com_goodtimes&task=add, заполните все поля формы и нажмите кнопку "Сохранить".

На экране вы увидите следующее:

step8

Убедиться что данные сохранены в БД вы можете открыв phpMyAdmin и просмотреть таблицу jos_goodtimes.

step8

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Mark
 
Интересная статья? Поделись ей с другими: