MySQL Условно съхранени процедури IF - CASE

Съдържание
Ако условните съхранени процедури
Ще създадем база данни и таблица с коментари, които потребителите правят, те могат да бъдат статии, публикации или каквото искаме.
СЪЗДАЙТЕ ТАБЛИЦА `коментари` (
`commentid` int (11) ПО подразбиране NULL,
`date` date DEFAULT NULL,
`userid` int (50) DEFAULT NULL,
текст на „коментар“,
PRIMARY KEY ("възникване")
) ДВИГАТЕЛ = КАРТЕТА ПО УМОЛЧЕНИЕ НА MyISAM = latin1;
Ще създадем съхранена процедура, която отчита броя на коментарите, които потребителят е оставил, и връща нивото, на което е този потребител, като взема като отправна точка за примера.
Експерт ако сте направили повече от 5000 коментара
Разширено ако сте коментирали между 4999 и 1000 пъти
Модератор ако сте коментирали между 999 и 500 пъти
Редактор ако сте коментирали между 499 и 100 пъти
Създаваме съхранената процедура и тя ще има два параметъра, единият от които ще въведе идентификатора или номера на потребителя, чиято променлива е p_usuario, а друг изход, който ще бъде нивото с променливата p_level.

Обясняваме съхранената процедура, която я наричаме, приемаме идентификатор на ползване = 112
Потребителско ниво на CALL (112)
Той избира и брои броя коментари за този потребител и го съхранява в общата променлива, след това структурата if ще присвои нивото на променливата p_level и тя ще върне стойността.
<? // Подготвяме заявка от php
$ result = $ mysqli-> query ("CALL userlevel (112)");
$ ред = $ резултат-> fetch_assoc ();
echo 'Ниво:'. $ row ['p_level']; ?> var13 ->

CASE условно съхранени процедури
Операцията е много подобна на предишната, само че условието е CASE и в този пример получаваме разходите за доставка или допълнителна такса според местоположението на клиент.

Ще приемем cityid = 2 и ще извикаме съхранената процедура p
ОБАДЕТЕ се за доставка (2)
<? // Подготвяме заявка от php
$ result = $ mysqli-> query ("ОБАЖДАНЕ на разходите за доставка (2)");
$ ред = $ резултат-> fetch_assoc ();
echo 'Доплащане за доставка'. $ row ['p_recargo']; ?> var13 ->

Също така в рамките на възможностите, предлагани от условни структури, можем да използваме структурите if или case за извършване на няколко действия с една съхранена процедура
Ще създадем например съхранена процедура за управление на продукти, на която чрез изпращане на параметър можем след това да определим какво действие или задача ще изпълним.

Можем да видим, че в процедурата за продукти имаме параметър, наречен p_accion, така че задаваме дали действието ще бъде да запишете нов продукт или да го промените в базата данни
Пример за вмъкване на нов продукт
<? // Подготвяме заявка от php
$ result = $ mysqli-> query ("ОБАЖДАНЕ на продукти (10," Мобилен телефон "," 100,00 "," нов ")");
echo 'Продуктът е регистриран'; ?> var13 ->

Пример за вмъкване на редакция или промяна на продукт
<? // Подготвяме заявка от php
$ result = $ mysqli-> query ("ОБАЖДАНЕ на продукти (10," мобилен телефон MXC3 "," 120,00 "," редактиране ")");
echo 'Продуктът е променен'; ?> var13 ->

Този метод е много полезен за групиране на задачи, известни като CRUD, тоест създаване, четене, редактиране и изтриване на данни и извършване на актуализации и търсения, всички подредени в един и същ файл, като по този начин улеснява поддръжката и възможността за мащабиране на базата данни, ако е необходимо.
В допълнение, той позволява от гледна точка на функционалния анализ да бъде по -ясен относно бизнес правилата на приложението.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка
wave wave wave wave wave