Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Webprogrammering SQL og databaser del 2.

Liknende presentasjoner


Presentasjon om: "Webprogrammering SQL og databaser del 2."— Utskrift av presentasjonen:

1 Webprogrammering SQL og databaser del 2

2 I dag Objektorienterte databasekoblinger Struktur på objektorientering
Mange er usikre på det i oblig 1 Kodegjennomgang Oppgaveløsning

3 MySql-i Objektbasert MySql – improved, kom i php versjon 5
Et alternativ til mysql funsksjonene som vist sist Helt tilsvarende, men kall til metoder i et objekt istedenfor funksjoner Fungerer på Cube og lokalt dersom standard XAMPP lastes. Dersom det ikke fungerer lokalt er det en dll i php.ini som må aktiveres (php_myslqi.dll el.)

4 MySQLi (uten feilhåndtering)
Database <?php $db=new mysqli("localhost","root","","Test"); $sql = "Select Fornavn,Etternavn from ansatt"; $resultat=$db->query($sql); $antallRader = $db->affected_rows; for ($i=0;$i<$antallRader;$i++) { $radObjekt=$resultat->fetch_object(); echo $radObjekt->Etternavn." ".$radObjekt->Fornavn."<br/>”; } ?>

5 MySQLi med feil-håndtering
$db=new mysqli("localhost","root","","Test"); if($db->connect_error) { die(”Kunne ikke koble til db : ".$db->connect_error); } $sql = "Select Fornavn,Etternavn from ansatt"; $resultat=$db->query($sql); if(!$resultat) echo "Error".$db->error."<br/>"; else $antallRader = $db->affected_rows; for ($i=0;$i<$antallRader;$i++) $radObjekt=$resultat->fetch_object(); echo $radObjekt->Etternavn." ".$radObjekt->Fornavn."<br/>"; MySQLi med feil-håndtering

6 Insert med MySQLi $db=new mysqli("localhost","root","","Test");
if($db->connect_error) { die(” Kunne ikke koble til db : ".$db->connect_error); } $sql = "Insert Into ansatt (Fornavn, Etternavn) Values ('Per','Pettersen')"; $resultat=$db->query($sql); if(!$resultat) echo "Error".$db->error; else $antallRader = $db->affected_rows; if($antallRader==0) echo "Kunne ikke sette inn dataene i databasen!"; Insert med MySQLi

7 Struktur på objektorientering
Mange er usikre på hvordan løse oblig1 objektorientert. Hvor skal de ulike kodebitene ligge Vil se på et eksempel og vise ulike måter å løse objektorientering på Ser også hvordan integrere databaser i denne strukturen.

8 Eksempel Problem: En løsning hvor kunder kan bestille billetter (tilsvarende oblig1) Først finne ut hvilke klasser vi skal lage Klasser skal være noe konkret I dette tilfelle er da kunde og billett et godt forslag til klasser for denne løsningen

9 Klasser Billett Kunde Attributter Attributter Metoder Metoder

10 Klasser og databasetabeller
Ofte er det en tabell i databasen til hver av klassene (i dette tilfelle kunde og billett) Billett Kunde Navn Adresse Postnr Poststed Type Dato Sted Kunde Billett IDNavn Navn Adresse Postnr Poststed IDBillett Type Dato Sted get_type (); set_type($type); …. get_navn(); set_navn($navn); ….

11 Klasser og databasetabeller
Ved normalisering(optimalisering) av databasen blir det ikke en tabell til en klasse Billett Kunde Navn Adresse Poststed Postnr Type Dato Sted Kunde Poststed Billett IDNavn Navn Adresse Postnr Postnr Poststed IDBillett Type Dato Sted get_Type (); Set_type($type); …. get_Navn(); set_navn($navn); ….

12 Hvilke metoder i klassene?
Get, set metoder for alle attributter Validering av alle felt Databaseoperasjoner All funksjonalitet som tilhører klassen Andre egne klasser kan vurderes som Skrive / leste fil Sende e-post

13 Egne db-klasser Kan legge databasemetodene i egne klasser
Bra ved store systemer (lagdeling) Kunde KundeDB Billett BillettDB Navn Adresse Poststed Postnr Type Dato Sted vis_alle_kunder(); lagre_kunde (..); slett_kunde (..); oppdater_kunde(..) vis_alle_billetter (); lagre_billett (..); slett_billett (..); oppdater_billett(..) get_Type (); Set_type($type); valider_type($type) …. get_navn(); set_navn($navn); valider_navn($navn); …..

14 Oppsummert Klasser mot tabeller i databasen
Attributter mot kolonner i tabellene Mest mulig funksjonalitet knyttet til klassen som metoder inkludert validering Evt. en databaseklasse pr. vanlig klasse Så lite som mulig av kode utenfor klasser Håndtering av skjemaer, legge inn verdier må ligge utenfor klasser.


Laste ned ppt "Webprogrammering SQL og databaser del 2."

Liknende presentasjoner


Annonser fra Google