Inhoudsopgave
IF voorwaardelijke opgeslagen proceduresWe zullen een database en een tabel maken met opmerkingen die gebruikers maken, dit kunnen artikelen, berichten of wat we maar willen zijn.
MAAK TABEL 'opmerkingen' (
`commentid` int (11) STANDAARD NULL,
`datum` datum STANDAARD NULL,
`userid` int (50) STANDAARD NULL,
`commentaar` tekst,
PRIMAIRE SLEUTEL (`occurrenceid`)
) MOTOR = MyISAM STANDAARD CHARSET = latin1;
We gaan een opgeslagen procedure maken die het aantal opmerkingen telt dat een gebruiker heeft achtergelaten en het niveau teruggeeft waarop die gebruiker zich bevindt, als referentie voor het voorbeeld.
Deskundige als je meer dan 5000 opmerkingen hebt gemaakt
Geavanceerd als je tussen de 4999 en 1000 keer hebt gereageerd
Moderator als je tussen de 999 en 500 keer hebt gereageerd
Editor als je tussen de 499 en 100 keer hebt gereageerd
We maken de opgeslagen procedure en deze zal twee parameters hebben, waarvan er één de id of het nummer zal zijn van de gebruiker wiens variabele p_usuario is en een andere uitvoer die het niveau met de variabele p_level zal zijn.
We leggen de opgeslagen procedure uit die we het noemen, we gaan uit van een gebruikers-ID = 112
CALL gebruikersniveau (112)
Het selecteert en telt het aantal opmerkingen voor deze gebruiker en slaat het op in de totale variabele, waarna de if-structuur het niveau toewijst aan de variabele p_level en de waarde teruggeeft.
<? // We bereiden een query voor vanuit php
$ resultaat = $ mysqli-> query ("CALL gebruikersniveau (112)");
$ rij = $ resultaat-> fetch_assoc ();
echo 'Niveau:' $ row ['p_level']; ?> var13 ->
CASE voorwaardelijke opgeslagen procedures
De bewerking lijkt erg op de vorige, alleen is de voorwaardelijke CASE en in dit voorbeeld krijgen we de verzendkosten of toeslag op basis van de locatie van een klant.
We gaan uit van een cityid = 2 en noemen de opgeslagen procedure p
BEL verzendkosten (2)
<? // We bereiden een query voor vanuit php
$ resultaat = $ mysqli-> query ("CALL verzendkosten (2)");
$ rij = $ resultaat-> fetch_assoc ();
echo 'Verzendkosten' $ row ['p_recargo']; ?> var13 ->
Ook binnen de mogelijkheden die voorwaardelijke structuren bieden, kunnen we de if of case-structuren gebruiken om meerdere acties uit te voeren met een enkele opgeslagen procedure
We zullen bijvoorbeeld een opgeslagen procedure creëren om producten te beheren waarnaar we door een parameter te sturen, kunnen bepalen welke actie of taak we zullen uitvoeren.
We kunnen zien dat we in de productprocedure een parameter hebben met de naam p_accion, dus we wijzen toe of de actie zal zijn om een nieuw product op te slaan of te wijzigen in de database
Voorbeeld om een nieuw product in te voegen
<? // We bereiden een query voor vanuit php
$ resultaat = $ mysqli-> query ("CALL-producten (10, 'Mobiele telefoon', '100,00', 'nieuw')");
echo 'Het product is geregistreerd'; ?> var13 ->
Voorbeeld om een product te bewerken of te wijzigen
<? // We bereiden een query voor vanuit php
$ resultaat = $ mysqli-> query ("CALL-producten (10, 'MXC3 mobiele telefoon', '120,00', 'edit')");
echo 'Het product is aangepast'; ?> var13 ->
Deze methode is erg handig voor het groeperen van taken die bekend staan als CRUD, dat wil zeggen het creëren, lezen, bewerken en verwijderen van gegevens en het uitvoeren van updates en zoekopdrachten, allemaal geordend in hetzelfde bestand, waardoor het onderhoud en de mogelijkheid om de database indien nodig te schalen, wordt vergemakkelijkt.
Daarnaast maakt het het vanuit het oogpunt van functionele analyse mogelijk om meer duidelijkheid te krijgen over de business rules van de applicatie.Vond je deze tutorial leuk en hielp je hem?Je kunt de auteur belonen door op deze knop te drukken om hem een positief punt te geven