Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

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

Liknende presentasjoner


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

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

2 I dag l Databaser og MySQL –Regner med at alle har inngående kjennskap til dette da alle har faget databaser. –Går ikke igjennom SQL i dette faget! l Introduksjon til MySQL og PHP –Gjennomgått raskt i databasekurset. –Mer grundig gjennomgang l Litt om de ulike grafiske databaseverktøyene –HeidiSQL, SQL Admin, phpMyAdmin

3 For å bruke SQL i PHP l Knytte til server hvor databasen ligger l Knytte til databasen l Lage en sql setning l Utføre denne l Ved select loop’e igjennom resultatet l Feilhåndtering

4 <?php $db_server = mysql_connect("localhost","root",""); // evt. $db_server = mysql_connect(" cube.iu.hio.no", " s99999",""); $db = mysql_select_db(”test"); // evt. $db = mysql_select_db(" s99999"); $sql = "Insert INTO Ansatt (Fornavn,Etternavn,Adresse,Postnr,Poststed)"; $sql.="Values ('Per','Hansen', ’Osloveien 2','0202','Oslo')"; $resultat = mysql_query($sql); ?> SQL i PHP (uten feilhåndtering) Single funtter ! Bruker Passord Merk her er ikke nummeret lagt inn (autonummer)

5 Feilhåndtering knytning til DB: <?php $db_server = mysql_connect("localhost","root",""); if(!$db_server) { die("Kunne ikke knytte til server". mysql_error()); } $db = mysql_select_db("Test"); if(!$db) { die("Feil, fant ikke databasen ". mysql_error()); } ?>

6 Feilhåndtering med feilhåndterer: <?php $db_server = mysql_connect("localhost","root",""); if(!$db_server) { trigger_error(mysql_error()); die (”Kunne ikke knytte til server "); } $db = mysql_select_db("Test"); if(!$db) { trigger_error(mysql_error()); die ("Feil, fant ikke databasen "); } ?>

7 Feilhåndtering SQL/Insert: include " connect-db "; $sql = "Insert INTO ansatt (Fornavn,Etternavn,Adresse,Postnr,Poststed)"; $sql.="Values ('Per','Hansen','Osloveien 82','0202','Oslo')"; $resultat = mysql_query($sql); if(!$resultat) { trigger_error(mysql_error()); echo "Feil, klarte ikke å sette inn data"; } elseif(mysql_affected_rows ()==0) { echo "Feil, ingen rader er satt inn"; } mysql_close($db_server); Ikke strengt tatt nødvendig

8 Select uten feilhåndtering include " connect-db "; $sql="Select * from ansatt"; $resultat = mysql_query($sql); $antallRader = mysql_affected_rows(); echo "Fornavn, Etternavn, Adresse, Postnr, Poststed "; for($i=0;$i<$antallRader;$i++) { $rad = mysql_fetch_array($resultat); echo $rad["Fornavn"].$rad["Etternavn"].$rad["Adresse"]; echo $rad["Postnr"].$rad["Poststed"]." "; }

9 Select med feilhåndtering $sql="Select * from ansatt"; $resultat = mysql_query($sql); if(!$resultat) { echo "Feil i henting av data fra databasen"; } else { $antallRader = mysql_affected_rows(); echo "Fornavn, Etternavn, Adresse, Postnr, Poststed "; for($i=0;$i<$antallRader;$i++) { $rad = mysql_fetch_array($resultat); echo $rad["Fornavn"].$rad["Etternavn"].$rad["Adresse"]; echo $rad["Postnr"].$rad["Poststed"]." "; } }

10 Alternativ Select med While (uten feilhåndtering) $sql="Select * from ansatt"; $resultat = mysql_query($sql); echo "Fornavn, Etternavn, Adresse, Postnr, Poststed "; while ($rad=mysql_fetch_array($resultat)) { echo $rad["Fornavn"].$rad["Etternavn"].$rad["Adresse"]; echo $rad["Postnr"].$rad["Poststed"]." "; }

11 Array med dobbel informasjon: IndeksNøkkelVerdi 001 1Nr1 21Per 3FornavnPer 42Olsen 5EtternavnOlsen 63Osloveien 4 7AdresseOsloveien 4 841002 9Postnr1002 105Oslo 11PoststedOslo Array $sql = "SELECT * FROM person"; $resultat = mysql_query($sql); $rad = mysql_fetch_array($resultat); Tabell NrFornavnEtternavnAdressePostnrPoststed 1PerOlsenOsloveien 41002Oslo 2KnutPettersenGata 452300Hamar

12 Eksempel på returnert array: Array $sql = "SELECT * FROM person"; $resultat = mysql_query($sql); $rad = mysql_fetch_array($resultat MYSQL_ASSOC); Tabell NrFornavnEtternavnAdressePostnrPoststed 1PerOlsenOsloveien 41002Oslo 2KnutPettersenGata 452300Hamar IndeksNøkkelVerdi 0Nr1 1FornavnPer 2EtternavnOlsen 3AdresseOsloveien 4 4Postnr1002 5PoststedOslo

13 Lagre fra et skjema: Fornavn: Etternavn: Adresse: Postnr: Poststed:

14 Hente data fra skjema og lagre if(isset($_REQUEST["knapp"])) { $fornavn=$_REQUEST["fornavn"]; $etternavn=$_REQUEST["etternavn"]; $adresse=$_REQUEST["adresse"]; $postnr=$_REQUEST["postnr"]; $poststed=$_REQUEST["poststed"]; $sql = "Insert INTO ansatt (Fornavn,Etternavn,Adresse,Postnr,Poststed)"; $sql.="Values ('$fornavn','$etternavn','$adresse','$postnr','$poststed')"; $resultat = mysql_query($sql); if(!$resultat) { echo "Feil, klarte ikke å sette inn data". mysql_error(); } elseif(mysql_affected_rows ()==0) { echo "Feil, ingen rader er satt inn"; } } Enklere å lese lokale variabler her

15 Slette data <?php include "sql-connect-inc.php"; $slettEtternavn = $_REQUEST["slettEtternavn "]; $sql = "DELETE FROM Kunde WHERE etternavn = '$slettEtternavn'"; if(mysql_query($sql)) { if ( mysql_affected_rows ()>0) { echo " * Persondata er slettet * "; } else { echo " * Fant ikke etternavnet for sletting * "; } } else { echo mysql_error(); } Skriv etternavnet til personen for sletting: slettEtternavn Merk single fnutt før dobbel!

16 Oppdatere, sjekk for endring <?php include "sql-connect-inc.php"; $sql = " UPDATE Kunde SET Fornavn = '". $_REQUEST[" endreFornavn "]. "' "; $sql. = " WHERE Etternavn = '".$_REQUEST[" endreEtternavn "]."' "; if(mysql_query($sql)) { if ( mysql_affected_rows ()>0) { echo " * Persondata er endret * "; } else { echo " * Fant ikke etternavnet for endring * "; } } else { echo mysql_error(); } som skal endres: Prikksyntaks med REQUEST array rett i SQL

17 Vise bilde fra database <?php echo "Liste over ansatte med bilde : "; echo " Nr Etternavn Fornavn Bilde "; include "sql-connect-inc.php"; $sql = "SELECT * FROM ansatt"; $resultat = mysql_query($sql); while ($row = mysql_fetch_array($resultat,MYSQL_ASSOC)) { echo " "; //ny linje echo " ".$row['Nr']." "; echo " ".$row['Etternavn']." "; echo " ".$row['Fornavn']." "; $bildeStreng="<img src='".$row['Bilde']."' width ='100' Height='100'"; echo " $bildeStreng "; echo " "; // slutt på ny linje. } echo " "; include "sql-close-inc.php"; ?>

18 Databaseverktøy l Putty l HeidiSQL –På lab, freeware, enkel l MySQL workbench –Freeware, mer avansert, ikke på lab l phpMyAdmin –Følger med XAMPP når det installeres lokalt


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

Liknende presentasjoner


Annonser fra Google