MySQL Conditional Stored Procedures IF - CASE

Cuprins
IF proceduri stocate condiționate
Vom crea o bază de date și un tabel cu comentarii pe care utilizatorii le fac, acestea putând fi articole, postări sau orice ne dorim.
CREAȚI TABELUL `comentarii` (
`commentid` int (11) DEFAULT NULL,
data `date` data DEFAULT NULL,
`userid` int (50) DEFAULT NULL,
text "comentariu",
CHEIE PRIMARĂ („occurrenceid”)
) MOTOR = MyISAM DEFAULT CHARSET = latin1;
Vom crea o procedură stocată care contorizează numărul de comentarii pe care le-a lăsat un utilizator și returnează nivelul la care se află acel utilizator, luând ca referință pentru exemplu.
Expert dacă ați făcut mai mult de 5000 de comentarii
Avansat dacă ați comentat între 4999 și 1000 de ori
Moderator dacă ați comentat între 999 și 500 de ori
Editor dacă ați comentat între 499 și 100 de ori
Creăm procedura stocată și va avea doi parametri, dintre care unul va fi introdus ID-ul sau numărul utilizatorului a cărui variabilă este p_usuario și o altă ieșire care va fi nivelul cu variabila p_level.

Vă explicăm procedura stocată pe care o numim, presupunem un userid = 112
CALL nivel utilizator (112)
Selectează și contorizează numărul de comentarii pentru acest utilizator și îl stochează în variabila totală, apoi structura if va atribui nivelul variabilei p_level și va returna valoarea.
<? // Pregătim o interogare din php
$ result = $ mysqli-> interogare ("CALL userlevel (112)");
$ rând = $ rezultat-> fetch_assoc ();
ecou 'Nivel:'. $ rând ['p_level']; ?> var13 ->

Proceduri stocate condiționate CASE
Operațiunea este foarte asemănătoare cu cea anterioară, doar că condiționalul este CASE și în acest exemplu obținem costul de expediere sau suprataxă în funcție de locația unui client.

Vom presupune un cityid = 2 și vom apela procedura stocată p
SUNAȚI costul de expediere (2)
<? // Pregătim o interogare din php
$ result = $ mysqli-> interogare ("CALL cost shipping (2)");
$ rând = $ rezultat-> fetch_assoc ();
ecou „Surcharge for shipping”. $ rând ['p_recargo']; ?> var13 ->

De asemenea, în cadrul posibilităților oferite de structurile condiționale, putem utiliza structurile if sau case pentru a efectua mai multe acțiuni cu o singură procedură stocată
Vom crea, de exemplu, o procedură stocată pentru a gestiona produsele la care, prin trimiterea unui parametru, putem determina apoi ce acțiune sau sarcină vom efectua.

Putem vedea că în procedura produselor avem un parametru numit p_accion, deci atribuim dacă acțiunea va fi salvarea unui produs nou sau modificarea acestuia în baza de date
Exemplu pentru inserarea unui produs nou
<? // Pregătim o interogare din php
$ result = $ mysqli-> interogare ("CALL products (10, 'Mobile phone', '100,00', 'new')");
ecou „Produsul a fost înregistrat”; ?> var13 ->

Exemplu pentru a insera o modificare sau a modifica un produs
<? // Pregătim o interogare din php
$ result = $ mysqli-> interogare ("CALL products (10, 'MXC3 mobile phone', '120,00', 'edit')");
ecou „Produsul a fost modificat”; ?> var13 ->

Această metodă este foarte utilă pentru gruparea sarcinilor cunoscute sub numele de CRUD, adică crearea, citirea, editarea și ștergerea datelor și efectuarea actualizărilor și căutărilor, toate ordonate în același fișier, facilitând astfel întreținerea și posibilitatea scalării bazei de date, dacă este necesar.
În plus, permite din punct de vedere al analizei funcționale să fie mai clar cu privire la regulile de afaceri ale aplicației.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv
wave wave wave wave wave