Bedingte gespeicherte MySQL-Prozeduren IF - CASE

Inhaltsverzeichnis
IF bedingte gespeicherte Prozeduren
Wir werden eine Datenbank und eine Tabelle mit Kommentaren erstellen, die Benutzer machen, das können Artikel, Beiträge oder was auch immer wir wollen.
CREATE TABLE `comments` (
`commentid` int (11) DEFAULT NULL,
`Datum` Datum DEFAULT NULL,
`userid` int (50) DEFAULT NULL,
'Kommentar'-Text,
PRIMÄRSCHLÜSSEL (`vorkommenid`)
) ENGINE = MyISAM DEFAULT CHARSET = latin1;
Wir werden eine gespeicherte Prozedur erstellen, die die Anzahl der Kommentare zählt, die ein Benutzer hinterlassen hat, und die Ebene zurückgibt, auf der sich dieser Benutzer befindet, als Referenz für das Beispiel.
Experte wenn Sie mehr als 5000 Kommentare abgegeben haben
Fortschrittlich wenn du zwischen 4999 und 1000 mal kommentiert hast
Moderator wenn du zwischen 999 und 500 mal kommentiert hast
Editor wenn du zwischen 499 und 100 mal kommentiert hast
Wir erstellen die gespeicherte Prozedur und sie hat zwei Parameter, von denen einer die ID oder Nummer des Benutzers eingegeben wird, dessen Variable p_usuario ist, und ein anderer Ausgang, der die Ebene mit der Variablen p_level ist.

Wir erklären die gespeicherte Prozedur, die wir nennen, wir nehmen eine Benutzer-ID = 112 an
CALL-Benutzerebene (112)
Es wählt und zählt die Anzahl der Kommentare für diesen Benutzer und speichert sie in der Gesamtvariablen, dann weist die if-Struktur die Ebene der Variablen p_level zu und gibt den Wert zurück.
<? // Wir bereiten eine Abfrage von php . vor
$ result = $ mysqli-> query ("CALL userlevel (112)");
$ Zeile = $ Ergebnis-> fetch_assoc ();
echo 'Level:' $ row ['p_level']; ?> var13 ->

CASE bedingte gespeicherte Prozeduren
Die Operation ist der vorherigen sehr ähnlich, nur dass die Bedingung CASE ist und in diesem Beispiel wir die Versandkosten oder den Aufpreis je nach Standort eines Kunden erhalten.

Wir nehmen eine cityid = 2 an und rufen die gespeicherte Prozedur p
ANRUF Versandkosten (2)
<? // Wir bereiten eine Abfrage von php . vor
$ result = $ mysqli-> query ("CALL Versandkosten (2)");
$ Zeile = $ Ergebnis-> fetch_assoc ();
echo 'Zuschlag für Versand' $ row ['p_recargo']; ?> var13 ->

Auch innerhalb der Möglichkeiten, die bedingte Strukturen bieten, können wir die if- oder case-Strukturen verwenden, um mehrere Aktionen mit einer einzigen gespeicherten Prozedur auszuführen
Wir werden zum Beispiel eine gespeicherte Prozedur erstellen, um Produkte zu verwalten, an die wir durch Senden eines Parameters dann bestimmen können, welche Aktion oder Aufgabe wir ausführen werden.

Wir können sehen, dass wir in der products-Prozedur einen Parameter namens p_accion haben, also weisen wir zu, ob die Aktion darin besteht, ein neues Produkt zu speichern oder es in der Datenbank zu ändern
Beispiel zum Einfügen eines neuen Produkts
<? // Wir bereiten eine Abfrage von php . vor
$ result = $ mysqli-> query ("CALL-Produkte (10, 'Handy', '100,00', 'neu')");
echo 'Das Produkt wurde registriert'; ?> var13 ->

Beispiel zum Einfügen einer Bearbeitung oder Änderung eines Produkts
<? // Wir bereiten eine Abfrage von php . vor
$ result = $ mysqli-> query ("CALL products (10, 'MXC3 Handy', '120,00', 'edit')");
echo 'Das Produkt wurde geändert'; ?> var13 ->

Diese Methode ist sehr nützlich für die Gruppierung von Aufgaben, die als CRUD bekannt sind, dh das Erstellen, Lesen, Bearbeiten und Löschen von Daten sowie das Ausführen von Aktualisierungen und Suchen, die alle in derselben Datei angeordnet sind, und erleichtert so die Wartung und die Möglichkeit, die Datenbank bei Bedarf zu skalieren. .
Darüber hinaus ermöglicht es aus Sicht der Funktionsanalyse mehr Klarheit über die Geschäftsregeln der Anwendung.Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben
wave wave wave wave wave