Obsah
IF podmíněně uložené proceduryVytvoříme databázi a tabulku s komentáři, které uživatelé budou dělat, mohou to být články, příspěvky nebo cokoli, co chceme.
VYTVOŘIT TABULKU `komentáře` (
`commentid` int (11) VÝCHOZÍ NULL,
`date` date DEFAULT NULL,
`userid` int (50) DEFAULT NULL,
`text komentáře ',
PRIMÁRNÍ KLÍČ (`výskytid`)
) MOTOR = VÝCHOZÍ CHARSET MyISAM = latin1;
Chystáme se vytvořit uloženou proceduru, která spočítá počet komentářů, které uživatel zanechal, a vrátí úroveň, na které je tento uživatel, přičemž jako příklad uvedeme příklad.
Expert pokud jste napsali více než 5 000 komentářů
Pokročilý pokud jste komentovali 4999 až 1000krát
Moderátor pokud jste komentovali 999 až 500krát
Editor pokud jste komentovali 499 až 100krát
Vytvoříme uloženou proceduru a ta bude mít dva parametry, z nichž jeden bude zadávat ID nebo číslo uživatele, jehož proměnnou je p_usuario, a druhý výstup, který bude úrovní s proměnnou p_level.
Vysvětlíme uloženou proceduru, kterou nazýváme, předpokládáme userid = 112
CALL uživatelská úroveň (112)
Vybírá a počítá počet komentářů pro tohoto uživatele a ukládá je do celkové proměnné, poté struktura if přiřadí úroveň proměnné p_level a vrátí hodnotu.
<? // Připravíme dotaz z php
$ result = $ mysqli-> query ("CALL userlevel (112)");
$ řádek = $ result-> fetch_assoc ();
echo 'Úroveň:'. $ row ['p_level']; ?> var13 ->
CASE podmíněné uložené procedury
Operace je velmi podobná té předchozí, pouze podmínkou je PŘÍPAD a v tomto případě získáme náklady na dopravu nebo příplatek podle umístění klienta.
Předpokládáme cityid = 2 a zavoláme uloženou proceduru p
CALL poštovné (2)
<? // Připravíme dotaz z php
$ result = $ mysqli-> query ("CALL shipping cost (2)");
$ řádek = $ result-> fetch_assoc ();
echo 'Příplatek za poštovné'. $ row ['p_recargo']; ?> var13 ->
Také v rámci možností, které nabízejí podmíněné struktury, můžeme použít struktury if nebo case k provedení několika akcí s jedinou uloženou procedurou
Vytvoříme například uloženou proceduru pro správu produktů, u nichž odesláním parametru pak můžeme určit, jakou akci nebo úkol provedeme.
Vidíme, že v proceduře produktů máme parametr nazvaný p_accion, takže přiřadíme, zda bude akcí uložen nový produkt nebo jej upravit v databázi
Příklad pro vložení nového produktu
<? // Připravíme dotaz z php
$ result = $ mysqli-> query ("CALL products (10, 'Mobile phone', '100,00', 'new')");
echo „Produkt byl zaregistrován“; ?> var13 ->
Příklad pro vložení úpravy nebo úpravy produktu
<? // Připravíme dotaz z php
$ result = $ mysqli-> query ("CALL products (10, 'MXC3 mobile phone', '120,00', 'edit')");
echo „Produkt byl změněn“; ?> var13 ->
Tato metoda je velmi užitečná pro seskupování úkolů známých jako CRUD, tj. Vytváření, čtení, úpravy a mazání dat a provádění aktualizací a vyhledávání, vše seřazené do stejného souboru, což usnadňuje údržbu a v případě potřeby možnost škálování databáze.
Kromě toho umožňuje z hlediska funkční analýzy jasnější obchodní pravidla aplikace.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod