Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Høgskolen i Oslo Webprogrammering SQL og databaser del 2.

Liknende presentasjoner


Presentasjon om: "Høgskolen i Oslo Webprogrammering SQL og databaser del 2."— Utskrift av presentasjonen:

1 Høgskolen i Oslo Webprogrammering SQL og databaser del 2

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

3 MySql-i Objektbasert l MySql – improved, kom i php versjon 5 l Et alternativ til mysql funsksjonene som vist sist l Helt tilsvarende, men kall til metoder i et objekt istedenfor funksjoner l 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 query($sql); $antallRader = $db->affected_rows; for ($i=0;$i<$antallRader;$i++) { $radObjekt=$resultat->fetch_object(); echo $radObjekt->Etternavn." ".$radObjekt->Fornavn." ”; } ?> MySQLi (uten feilhåndtering) Database

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." "; } else { $antallRader = $db->affected_rows; for ($i=0;$i<$antallRader;$i++) { $radObjekt=$resultat->fetch_object(); echo $radObjekt->Etternavn." ".$radObjekt->Fornavn." "; } }

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!"; } }

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

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

9 Klasser Kunde Billett Attributter Metoder

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

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

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

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

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


Laste ned ppt "Høgskolen i Oslo Webprogrammering SQL og databaser del 2."

Liknende presentasjoner


Annonser fra Google