HTML, PHP, SQL, webserver, hvad er hvad??



Relaterede dokumenter
PHP 3 UGERS FORLØB PHP, MYSQL & SQL

PHP guide af Daniel Pedersen

Eksamen, DSDS, efterår 2007

PHP Snippets. De små korte. Skrevet af Daniel Pedersen

Data load og udtræk. 2. iteration: implmentation (test af backend) PHP mysql. Loade og parse XML (SimpleXML, Xpath) Filhåndtering i PHP JSON

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Reeksamen, DSDS, forår 2008

Interaktionsudvikling

Loginsystem (med MySQL)

Dynamisk PHP design OPDATERET

Eksamen, DSDS, efterår 2008

Databaseadgang fra Java

Hack of the Month opgave 2

Ordbøgerne.dk. Navne: Andreas Foldager og Rasmus Bjerring Pedersen Fag: IT B Lærer: Karl Bjarnason Afleveringsdato:

Eksamen, DSDS, forår 2009

PHP Crash course. Databaser

Tagwall med Php & MySQL

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach 2002

Eksempel på en database: studenter, kurser, eksamener

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.

En Kort Introduktion til Oracle

Ratingsystem i PHP og MySQL

I denne arktikle går jeg gennem Slet, Ret og Opret data i en MySQL database. der er også en lille del i den hvor den postere datanen ud i en løkke

At klippe en streng over på det mest hensigtsmæssige sted

- Hvad er PHP? - Hurtigt historisk overblik - Installation - Indstillinger - Hello world - Tekststrenge - PHP og HTML - En doven programmør er en god

Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen...

Projekt 3: Interaktionsudvikling 11/04.14

Eksamen, DSDS, forår 2008

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

IT projekt uge 4 9. Marie Vinter, Roskilde Tekniske Gymnasium, klasse 2.6 IT, bw, uge

P1-projekteksamen NANNY. Nøgleordsbaseret netværksovervågning Gruppe B226

FBS for praktikere Fyn. Notifikation og print skabeloner

Da jeg selv bruger Windows, så vil programmer osv. være til Windows, og beskrevet ud fra en Windowsbrugers

Design Diaries.

Views etc. Databaser

Introduktion til ActionScript

Rapport. Udarbejdet af: Mayianne Nøks Pedersen. Skole login: knmape68.

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

Password-beskyttelse af visse filer

Indholdsfortegnelse. Rasmus R. Sørensen, Christina Svenstrup og Lasse Bager 1

Log ind med PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 09. May 2011 af dab93 I kategorien Programmering / Andre

OPC ACCESS HEARTBEAT 1

Matematik læringsprojekt Journal

Som sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET

Gæstebog med validering opbygget med MySQL

The Design Diaries. Link til blog

Undervisningsbeskrivelse

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4

Algoritmer og invarianter

The Design Diaries Project 3 2. Semester. Blog om designprincipper

Denne rapport er skrevet af:

PHP Pagination. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 01. May 2011 af dab93 I kategorien Programmering / Andre

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

Kontrol-strukturer i PHP

Terese B. Thomsen 1.semester Formidling, projektarbejde og webdesign ITU DMD d. 02/

The Design Diaries PHP projekt

APPENDIX CODING MEMBUAT KOTAK CODING INSERT KOTAK

Python programmering. Per Tøfting. MacFest

PHP kode til hjemmeside menu.

Anvendelse af Model- View koncept i SAS Stored Processer

Dynamisk hjemmeside: NeuTravel

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.

Jeg har i forbindelse med it og programmering designet og udviklet et it-produkt, som kan beregne rødder i en anden gradsligning.

Carlas cupcakes. Projekt.

Forelæsning Uge 2 Mandag

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Programmering i Javascript

Introduktion til SQL queries

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen

Forelæsning 17, tirsdag 2. november 1999 Søgning efter en given værdi i en tabel. Programmering 1999

3. PROJEKT, 2 SEMESTER

Begrynder til at lave log ind system

I mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online.

Programmering I Java/C#

A11: Last Year s Exam

IT- eksamensprojekt. Campingplads. Vejleder: Mette Frost. Danielle Bacarda 3.4 RTG

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

Derfor vil jeg bygge dette eksempel på een table hvor der kan tilkyttes personer til ALLE noder og der kan tilføjes et vilkårligt antal niveauer

if (mysqli_num_rows($res) > 0) { while ($result = $res->fetch_array(mysqli_assoc)) { "<div class=\"article\">".

Dokumentering af umbraco artikeleksport:

2. SEMESTER PROJEKT 3 INTERAKTIONSUDVIKLING

Simpel, alsidig, objekt-orienteret pagination (paging) i PHP

Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i)

Under 'Microsoft Block Editor', klik 'New project' for at åbne block editor-værktøjet.

Undervisningsbeskrivelse

SQL Server 2008 Spatiale eksempler. Plan & Miljø, GIS

Start på javascript. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 03. Feb 2009 af webstuff I kategorien Programmering / JavaScript

Web 2.0. World Wide Web (www)

Loginsystem med PHP4, klasser, sessions og MySQL database

Programmeringscamp Opbygning og specialisering af klassehierarki. Simulering af en kasselinje

BOSK F2011, 1. del: Udsagnslogik

16/04/12 50% 50% Waveform Chart Waveform Graph XY Graph Indicator Graph 33% 17% 88% 13%

Begrænsninger i SQL. Databaser, efterår Troels Andreasen

Procesbeskrivelse - Webprogrammering

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

Undervisningsbeskrivelse

Transkript:

Dagens menu HTML og PHP: Baglæs fra output til input PHP: Variable, strenge og arrays Funktioner, oprettelse og kald (og variable på tværs af funktioner) echo vs return? if-else konstruktioner MySQL: Hvad returnerer mysql_query(): true/false/resultatsæt? mysql_fetch_row(), mysql_error() Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 1 HTML, PHP, SQL, webserver, hvad er hvad?? Begrebsafklaring: Sprog: HTML, PHP, SQL Sprog: HTML Hardware: Browser Hardware: Browser, webserver, databaseserver, database PHP Webserver Databaseserver PHP-filer på webserveren skal tale PHP med databaseserveren, SQL med databasen, og returnere HTML til browseren SQL Database Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 2 1

HTML og PHP, baglæns fra output til input (1) Det nemme eksempel: Ønskes: <p>krig er skidt, PHP er godt</p> Laves: <? echo <p>krig er skidt, PHP er godt</p> ;?> Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 3 HTML og PHP, baglæns fra output til input (2) Det lidt sværere eksempel: Ønskes: Camilla ckj@it-c.dk Lasse xls@it-c.dk Laves: <table> <tr><td>camilla</td><td>ckj@it-c.dk</td></tr> <tr><td>lasse</td><td>xls@it-c.dk</td></tr> </table> <table> <? $result = mysql_query( SELECT navn,email FROM table1 ); while ($row = mysql_fetch_row($result) { echo <tr><td>. $row[0]. </td>. <td>. $row[1]. </td></tr> ;?> </table> Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 4 2

HTML og PHP, baglæns fra output til input (3) Uklart output = ukendt proces = famlende programmering Derfor: Hvis du er i tvivl så start bagfra Hvordan ser det endelige resultat ud (visuelt)? Hvordan ser det endelige resultat ud i kildekoden (html) Hvilke dele går tilsyneladende igen (kunne tyde på løkker) <tr><td>navn</td><td>email</td></td></tr> Hvilke dele kommer fra databasen Camilla, ckj@it-c.dk, Lasse, xls@it-c.dk Hvilke andre dele kan identificeres? Hvordan laves det i php? Camilla Lasse ckj@it-c.dk xls@it-c.dk Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 5 Variable og strenge En variabel er en dims med et navn og en værdi (info inde i boksen). Værdien kan være En tekststreng $var = her er noget tekst ; Et tal $var = 36; En boolean $var = true; m.m. Quiz: Hvad er følgende? $var1 = -237; $var2 = 945 ; $var3 = $var1; $var4 = false ; $var5 = array( Lasse, xls@it-c.dk ); Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 6 3

Arrays (1) Et array er en samling af værdier Der findes to typer arrays: Associative $arr1 = array ( navn => Camilla, email => ckj@it-c.dk ); $arr2[ navn ] = Camilla ; $arr2[ email ] = ckj@it-c.dk ; Indexikale $arr1 = array ( Camilla, ckj@it-c.dk ); $arr2[0] = Camilla ; $arr2[1] = ckj@it-c.dk ; Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 7 Arrays (2) Et array kan forståes som en liste: Man navigerer et array ad x-aksen, derfor er $array[1] det samme som ckj@it-c.dk... Camilla, ckj@it-c.dk Arrays kan være flerdimensionelle, fx 2D, og kan nu bedre forstås som et skema: Man navigerer først ad x-aksen, derefter ad y-aksen, derfor er $array[0][1] det samme som ckj@it-c.dk... Camilla Lasse ckj@it-c.dk xls@it-c.dk Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 8 4

Funktioner (1) En funktion er en samling af en eller flere processer/kommandoer. Funktioner kaldes også for procedurer. Opret en simpel procedure: function bingohat() { echo <p>krig er skidt, PHP er godt</p> ; Kald/aktivér/eksekvér funktionen: bingohat(); Resultat: Krig er skidt, PHP er godt OBS: Oprettelse og kald af funktion er IKKE det samme! Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 9 Funktioner (2), argumenter En funktion kan tage argumenter som input function bingohat($arg1, $arg2) { echo <p>krig er. $arg1., PHP er. $ARG2. </p> ; Argumenter kan være i form tekststrenge, variabler, arrays, m.m. $klaphat = godt ; bingohat( skidt, $klaphat); Resultat: Krig er skidt, PHP er godt Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 10 5

Funktioner (3), echo eller return? En funktion bør gøre brug af ENTEN echoeller return function multiplicer_ver1($tal1,$tal2) { echo <p>. $tal1. gange. $tal2. er lig. ($tal1*$tal2). </p> ; multiplicer_ver1(12,4); function multiplicer_ver2($tal1,$tal2) { $result = <p>. $tal1. gange. $tal2. er lig. ($tal1*$tal2). </p> ; return $result; $regnetal = 16; $res = multiplicer_ver1($regnetal,3); echo $res; Resultat: 12 gange 4 er lig 48 16 gange 3 er lig 48 Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 11 Funktioner (4), echo eller return? Hvad er forskellen på echo og return? Return en bredere anvendelig fordi echo skriver direkte til brugeren, mens return giver mulighed for videremanipulation, inden der skrives til brugeren (hvis der overhovedet skal skrives til brugeren...) function multiplicer_ver2($tal1,$tal2) { return ($tal1*$tal2); $res = multiplicer_ver2(16,3); if ($res > 50) {... else {... Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 12 6

Funktioner (5), variable på tværs af funktioner Variable eksisterer ikke både i og udenfor rammerne af en funktion function multiplicer_ver2($tal1,$tal2) { $resultat = $tal1*$tal2; multiplicer_ver2(16,3); echo $resultat; Resultat: [ ] Fejl: $resultat er oprettet inde i funktionen, men ikke givet med ud (return $resultat), opsamlet ($res = multiplicer_ver2(16,3)) for herefter at være tilgængelig også udenfor... Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 13 Funktioner (6), quiztime Quiz: Find 5 fejl!! function multiplicer_ver1($tal1,$tal22) { echo <p>. $tal1. gange. $tal2. er lig. (tal1*$tal22). </p> ; multiplicer_ver1($regnetal,4); function multiplicer_ver2($tal1,$tal2) { $result = <p>. $tal1. gange. $tal2. er lig ($tal1*$tal2). </p> ; return $result $regnetal = 16; multiplicer_ver1(16,3); echo $result; Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 14 7

If-else konstruktioner Ofte bruges if-else blot i små passager fx ifm formvalidering if ($submitknap) { $pattern = "^[A-Za-z0-9_-\.]+@[A-Za-z0-9_-]+\.[A-Za-z0-9_-\.]+$ ; $mailok = ereg($pattern,$email); if ($mailok) { // alt i orden, toget kører videre else { // dårlig mail, fætter, prøv igen NB: Har brugeren klikket på submit? Se http://www.it-c.dk/people/xls/w2/ under rettelser til opgavesæt 5... Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 15 If-else konstruktioner (2) Men if-else konstruktioner kan også bruges til fx at omkranse et helt script og dermed være med til at styre udfaldet af et gennemløb... function executesql($strsql) { if (!$link = mysql_connect(......)) { echo "<p>ingen server.<br>". mysql_error()."</p>"; return false; else { if (!mysql_select_db(..,$link)) { echo "<p>ingen database.<br>". mysql_error()."</p>"; return false; else { $res = mysql_query($strsql, $link); if (!$res = mysql_query($strsql, $link)) { echo "<p>query fejlede.<br>". mysql_error()."</p>"; return false; else { return $res; mysql_close($link); Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 16 8

Hvad returner mysql_query() / executesql()? mysql_query() kan returnere 3 forskellige ting, alt afhængig af forespørgselstypen. Der findes grundlæggende to forskellige slags databaseforespørgsler, dem der returnerer data ( resultatsæt ) og dem, der ikke gør. Førstnævnte returner enten data eller false, sidstnævnte returnerer true eller false Eksempler på SQL-kommandoer, der returnerer data: SELECT, COUNT, DESCRIBE... Eksempler på SQL-kommandoer, der IKKE returnerer data: CREATE, INSERT, UPDATE, DELETE, DROP, ALTER... Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 17 Validering af mysql_query() Udfaldet af mysql_query bør testes, enten internt i executesql() eller ved kaldstedet fx inden resultatsættet gives videre til mysql_fetch_row(). if ($res = executesql( SELECT navn,email FROM brugere )) { if (mysql_num_rows($res) > 0) { while ($row = mysql_fetch_row($res)) { echo... else { echo <p>forespørgslen returnerede ingen rækker</p> ; else { echo <p>forespørgslen fejlede...</p> ; Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 18 9

Fejlmeddelelser med mysql_error() Ved validering af mysql-operationer kan man hvis operationen fejler få mysql-databasens egen fejlmeddelelse vha funktionen mysql_error(). function executesql($strsql) { if (!$link = mysql_connect(......)) { echo "<p>ingen server.<br>". mysql_error()."</p>"; return false; else {... Se yderligere forklaring på http://www.php.net/manual/en/function.mysql-error.php Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 19 Online resourcer W2: http://www.it-c.dk/people/xls/w2/ PHP: http://www.webcafe.dk/artikler/php/ http://www.webcafe.dk/artikler/sql/ http://hotwired.lycos.com/webmonkey/programming/php/ http://www.zend.com/zend/tut/ MySQL: http://www.php.net/manual/en/ref.mysql.php http://hotwired.lycos.com/webmonkey/99/21/index2a.html SQL: http://www.w3schools.com/sql/default.asp Lasse Steensgaard[xls] Opsamlende forelæsning på W2, 2. april 2003 slide 20 10