Шаг 8. Сохранение данных в БД
E-mail Печать PDF
Рейтинг пользователей: / 0
ХудшийЛучший 

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

Пос­ле то­го как мы вве­ли дан­ные в фор­му, при на­жатии на кноп­ку "Сох­ра­нить", мы долж­ны сох­ра­нить вве­ден­ные дан­ные в таб­ли­це БД. Для это­го соз­да­дим функ­цию sa­veGo­od­ti­me() в фай­ле ad­min.go­od­ti­mes.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
func­ti­on sa­veGo­od­ti­me( $op­ti­on )
{
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->re­vi­ew = JRe­qu­est::get­Var( 're­vi­ew', '', 'post', 'string', JRE­QU­EST_AL­LOWRAW );
$row->id = (int) $row->id;
$row->smo­king = (int) $row->smo­king;

$da­te =& JFac­to­ry::get­Da­te($row->re­vi­ew_da­te);
$row->re­vi­ew_da­te = $da­te->to­MySQL();

if (!$row->sto­re())
{
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;
}

$ma­inf­ra­me->re­direct($link, $msg);
}

Для на­чала мы объяв­ля­ем гло­баль­ную пе­ремен­ную $ma­inf­ra­me и те­кущее со­оеди­нение с БД. У пе­ремен­ной $ma­inf­ra­me есть мно­го функ­ций ко­торые мы мо­жем ис­поль­зо­вать для то­го что­бы уп­равлять сес­си­ей, пе­ремен­ны­ми и за­голов­ка­ми. Так­же мы соз­да­ем $row как эк­земп­ляр на­шего клас­са Tab­le­go­od­ti­mes. Да­лее функ­ция bind() заг­ру­жа­ет в $row все пе­ремен­ные фор­мы.

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

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

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

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

Для то­го что­бы на­ша функ­ция сох­ра­нения ста­ла ра­ботать нуж­но в файл ad­min.go­od­ti­mes.php в опе­ратор switch() до­бавить стро­ки:

1
2
3
ca­se 'sa­ve':
sa­veGo­od­ti­me( $op­ti­on, $task );
bre­ak;

Те­перь отк­рой­те ад­рес http://ваш_сайт/ad­mi­nist­ra­tor/in­dex.php?op­ti­on=com_go­od­ti­mes&task=add, за­пол­ни­те все по­ля фор­мы и наж­ми­те кноп­ку "Сох­ра­нить".

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

step8

Убе­дить­ся что дан­ные сох­ра­нены в БД вы мо­жете отк­рыв phpMy­Ad­min и прос­мотреть таб­ли­цу jos_go­od­ti­mes.

step8

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

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