OPPITUNTI 24 Esimerkki (Osa 2)

Koko: px
Aloita esitys sivulta:

Download "OPPITUNTI 24 Esimerkki (Osa 2)"

Transkriptio

1 24. Esimerkki (Osa 2) 429 OPPITUNTI 24 Esimerkki (Osa 2) Luvussa 23, "Esimerkki (Osa 1)" rakensimme ympäristön, joka sallii käyttäjien kirjoittautua palveluun ja lisätä kerho- ja tapahtumatiedot järjestelmään. Nyt voimme luoda skriptejä, jotka ovat välttämättömiä, jotta tavallinen käyttäjä voisi selata järjestelmän tietoja. Tämän tunnin aiheita ovat: Kuinka luodaan funktioita, jotka erottavat tietoa useista tauluista yhdellä kyselyllä Kuinka luodaan funktioita, jotka muuttavat SQL-kyselyn rakennetta vietyjen parametrien mukaan Kuinka tallennetaan hakuasetuksia, joita istuntofunktiot käyttävät Kuinka valmistetaan puhdas tekstitieto esitettäväksi HTML-ympäristössä

2 Esimerkki (Osa 2) Tapahtumapäiväkirjan julkiset näkymät Nyt kun jäsenet voivat rekisteröidä kerhonsa ja tapahtumansa tietokantaamme, voimme rakentaa näkymiä, joiden kautta tavalliset käyttäjät voivat ottaa esille tuota informaatiota. Nämä näkymät antavat käyttäjälle mahdollisuuden selata tietoja hakemisen sijaan, vaikkakin tuon lisäominaisuuden laittaminen mukaan ei olisi lainkaan vaikeaa. Tässä jaksossa rakennamme näytöt, joiden kautta käyttäjä voi nähdä listauksia, jotka vastaavat hänen aluettaan tai kiinnostuksen kohdettaan halutun kuukauden kohdalla. viewevents.php Tämä viewevents.php-näkymä antaa käyttäjälle mahdollisuuden selata annettuja tapahtumia. Se on samanlainen kuin reviewevents.php-näkymä, jota käsittelimme edellisellä tunnillamme, mutta antaa käyttäjälle kuitenkin enemmän mahdollisuuksia ja joustavuutta. Se ei kuitenkaan salli tiedon muuttamista. Tämän tiedoston koodi on listauksessa Listaus 24.1 viewevents.php 1: <?php 2: include("dblib.inc"); 3: include("date.inc"); 4: include("clublib.inc"); 5: 6: if ( isset($actionflag) && $actionflag == "showevents" ) 7: $session[viewevents] = $form; 8: elseif ( $session[viewevents] ) 9: $form = $session[viewevents]; 10: else 11: { 12: $d_array = getdate( time() ); 13: $session[viewevents][area] = "ANY"; 14: $session[viewevents][type] = "ANY"; 15: $session[viewevents][months] = $d_array[mon]; 16: $session[viewevents][years] = $d_array[year]; 17: } 18: 19: $range = getdaterange( $session[viewevents][months], 20: $session[viewevents][years] ); 21: function displayevents( ) 22: {

3 24. Esimerkki (Osa 2) : global $range, $session; 24: 25: $events = getevents( 0, $range, $session[viewevents][area], 26: $session[viewevents][type] ); 27: if (! $events ) 28: 29: print "No events yet for this combination<p>"; 30: return; 31: } 32: print "<table border=1>\n"; 33: print "<td><b>date</b></td>\n"; 34: print "<td><b>event</b></td>\n"; 35: print "<td><b>club</b></td>\n"; 36: print "<td><b>area</b></td>\n"; 37: print "<td><b>type</b></td>\n"; 38: foreach ( $events as $row ) 39: { 40: print "<tr>\n"; 41: print "<td>".date("j M Y H.i", $row[edate])."</td>\n"; 42: print "<td><a href=\"viewevent.php?event_id=$row[id]&".sid."\">". 43: html($row[ename])."</a></td>\n"; 44: print "<td><a href=\"viewclub.php?club_id=$row[eclub]&".sid."\">". 45: html($row[name])."</a></td>\n"; 46: print "<td>$row[areaname]</td>\n"; 47: print "<td>$row[typename]</td>\n"; 48: print "</tr>\n"; 49: } 50: print "</table>\n"; 51: } 52:?> 53: 54: <html> 55: <head>

4 Esimerkki (Osa 2) 56: <title>view events</title> 57: </head> 58: <body> 59: <?php 60: include("publicnav.inc"); 61:?> 62: <h1>view Events</h1> 63: <p> 64: <form action="<?php print $PHP_SELF;?>"> 65: <input type="hidden" name="actionflag" value="showevents"> 66: <input type="hidden" name="<?php print session_name()?>" 67: value="<?php print session_id()?>"> 68: <select name=form[months]> 69: <?php writemonthoptions( $range[0] );?> 70: </select> 71: 72: <select name=form[years]> 73: <?php writeyearoptions( $range[0] );?> 74: </select> 75: 76: <select name=form[area]> 77: <option value="any">any Area 78: <?php writeoptionlist( "areas", $form[area] )?> 79: </select> 80: 81: <select name=form[type]> 82: <option value="any">any type of event 83: <?php writeoptionlist( "types", $form[type] )?> 84: </select> 85: 86: <input type = "submit" value="change"> 87: </form> 88: </p>

5 24. Esimerkki (Osa 2) : 90: <?php 91: displayevents( ); 92:?> 93: 94: </body> 95: </html> Aloitamme koodin sisällyttämällä kirjastotiedostot dblib.inc, date.inc ja clublib.inc. Saamme näin pääsyn tiedostojen funktioihin. Lisäksi tiedostojen dblib.inc ja clublib.inc lisääminen takaa, että avaamme tietokantayhteyden ja käynnistämme istunnon. Sen jälkeen tarkistamme, onko käyttäjä lähettänyt lomakkeen sivulle, testaamalla muuttujaa nimeltä $actionflag. Vastaava kenttä (actionflag) on upotettu piilomuuttujana sivun lomakkeelle. Jos käyttäjä on lähettänyt lomakkeen, hänen valintansa tulee ohittaa aiemmin tallennetut asetukset. Edellisellä tunnilla näit, kuinka rekisteröimme assosiatiivisen taulukkomuuttujan käyttäjän istunnon kanssa tallentaaksemme kirjautumistiedot. Tällä tunnilla lisäämme samaan taulukkoon uusia elementtejä, jotka pitävät yllä käyttäjän asetuksia. Muuttuja $session rekisteröitiin käyttäjän istunnon kanssa, kun laitoimme mukaan clublib.phptiedoston. session_start(); session_register( "session" ); Käännämme nyt $session-muuttujan moniulotteiseen taulukkoon siten, että sijoitamme assosiatiiviset taulukkoelementit elementtiin nimeltä $session[viewevents]. Näin luokittelemme asetusmuuttujat sellaisiksi, että ne kuuluvat vain tälle näytölle. Käyttäjän valitsemat vaihtoehdot ovat alue, tyyppi, kuukaudet ja vuodet. Sijoitamme lomakkeen valinnat samannimisiin $session[viewevents]-elementteihin. Jos käyttäjä ei ole lähettänyt lomaketta, hän on saattanut tehdä niin aiemmin. Siinä tapauksessa on $session[viewevents]-taulukko asetettuna, mutta $actionflag-muuttuja ei. Jos niin on, asetamme $formtaulukkoon samat arvot. Se takaa, että lomake näkyy oikein asetuksin. Jos käyttäjä ei ole lähettänyt näytön lomaketta ja $session[viewevents]-elementti on tyhjä, meidän tulee muodostaa taulukko, joka perustuu oletusarvoihin. Käytämme getdate()-funktiota päivämääräindeksitaulukon muodostamiseksi. Tuota taulukkoa käytetään asettamaan $session[viewevents][months]- elementti nykyisen kuukausi-indeksin mukaiseksi ja $session[viewevents][years]-elementti nykyisen vuoden mukaan. Nyt tiedämme, että $session[viewevents][months]- ja $session[viewevents][years]-elementti sisältää nykyisen kuukauden ja vuoden ja sen, ovatko tiedot peräisin lomakkeen lähettämisestä, käyttäjäistunnosta vai oletuksena olevasta nykyisestä päivämäärästä. Viemme nuo arvot uudelle date.inc-tiedoston funktiolle nimeltä getdaterange(). Tuo funktio ottaa vastaan kuukauden ja vuoden ja palauttaa taulukon, jossa on kaksi aikaleimaa, jotka merkitsevät kuukauden alkua ja loppua. Listaus 24.2 Ote tiedostosta date.inc 1: function getdaterange( $mon, $year )

6 Esimerkki (Osa 2) 2: { 3: $start = mktime( 0, 0, 0, $mon, 1, $year ); 4: $end = mktime( 0, 0, 0, $mon+1, 1, $year ); 5: $end--; 6: return array( $start, $end ); 7: } Tämän funktion palauttama taulukko tallennetaan globaaliin $range-muuttujaan. Luomme funktion nimeltä displayevents(), joka kirjoittaa valitut tapahtumatiedot selaimelle. Sitä kutsutaan HTML-asiakirjan rungosta. Saadaksemme tapahtumatietotaulukon kutsumme getevents()-funktiota, joka on tiedostossa dblib.inc, jonka laitoimme mukaan aiemmin. Kohtasimme tämän funktion jo edellisellä tunnilla, mutta käytimme vain osan sen mahdollisuuksista. Listaus 24.3 Ote tiedostosta dlib.inc 1: function getevents( $club_id=0, $range=0, $area=0, $type=0 ) 2: { 3: global $link; 4: $query = "SELECT clubs.name, events.*, areas.area as areaname, 5: types.type as typename "; 6: $query.= "FROM clubs, events, areas, types WHERE "; 7: $query.= "clubs.id=events.eclub 8: AND events.area=areas.id 9: AND events.type=types.id "; 10: if (! empty( $club_id ) && $club_id!="any" ) 11: $query.= "AND events.eclub='$club_id' "; 12: if (! empty($range) ) 13: $query.= "AND events.edate >= '$range[0]' AND 14: events.edate <='$range[1]' "; 15: if (! empty($area) && $area!= "ANY" ) 16: $query.= "AND events.area='$area' "; 17: if (! empty($type) && $type!= "ANY" ) 18: $query.= "AND events.type='$type' "; 19: $query.= "ORDER BY events.edate"; 20: $result = mysql_query( $query, $link ); 21: if (! $result )

7 24. Esimerkki (Osa 2) : die ( "getidevents fatal error: ".mysql_error() ); 23: $ret = array(); 24: while ( $row = mysql_fetch_array( $result ) ) 25: array_push( $ret, $row ); 26: return $ret;s 27: } Vaikka tämän funktion nimenä onkin getevents(), se sieppaa paljon enemmän tietoa. Kuten voit nähdä, se ottaa vastaan neljä argumenttia: kerhon ID:n, päivämäärärajat, jotka ovat taulukossa kahtena aikaleimana, aluekoodin ja tyyppikoodin. Kaikki nämä argumentit ovat valinnaisia ja voit korvata ne joko nollalla tai arvolla false, jos et halua niitä mukaan SQL-kyselyyn. Funktio muodostaa dynaamisesti SQL-kyselyn, joka perustuu sille vietyihin argumentteihin. Ydinkysely liittää yhteen kaikki tietokannan taulut ja takaa, että kerhon, alueen ja tyypin nimi ovat mukana tulosjoukossa. $query = "SELECT clubs.name, events.*, areas.area as areaname, types.type as typename "; $query.= "FROM clubs, events, areas, types WHERE "; $query.= "clubs.id=events.eclub AND events.area=areas.id AND events.type=types.id "; Sen jälkeen lisätään muita ehtoja kyselyyn sen mukaan, onko funktion argumentteja asetettu. Parametrit $type ja $area ohitetaan myöskin, jos ne sisältävät merkkijonon "ANY". Käytännössä tämä merkitsee sitä, että mitä enemmän argumentteja funktio saa, sitä kapeamman tulosjoukon se palauttaa. Jos mitään argumentteja ei anneta, funktio palauttaa tapahtumataulukon jokaisen tapahtuman. Jos funktiolle annetaan $club_id-argumentti, se palauttaa vain kyseisen kerhon tapahtumat. Jos argumenttina annetaan $range-taulukko, palautetaan vain tuon aikavälin tapahtumat, ja niin edelleen. Lopuksi kysely lähetetään ja tulos palautetaan moniulotteisena taulukkona. Sen jälkeen meidän on vain käytävä taulukko läpi silmukassa. Käytämme jokaista edate-kenttää päivämäärän muotoilemiseksi date()-funktion yhteydessä. Sitten muodostamme linkin tiedostoon viewevent.php, joka antaa lisätietoa tapahtumasta. Sitä varten muodostamme kyselymerkkijonon, joka sisältää tapahtuman ID:n ja SID-vakion. Tässä silmukassa muodostamme myös HTML-hyperlinkin tiedostoon viewclub.php luoden kyselymerkkijonon, joka sisältää kerhon ID:n ja SID-vakion. Lopuksi tulostamme tapahtuman tyypin ja alueen nimet. Olet saattanut huomata, että edellisellä tunnilla käytimme funktiota nimeltä html(), kun tulostimme jäsenkohtaista tapahtumatietoa yhteenvetolomakkeella. Kun käymme läpi tapahtumatietoa writeevents()- funktiossa, kutsumme html()-funktiota uudelleen. Tämä funktio on käyttäjän määrittelemä ja se elää clublib.inc-kirjastossa. Se ottaa vastaan merkkijonon ja palauttaa muunnetun version, joka sopii selaimen tulostettavaksi. Erikoismerkit muunnetaan HTML-merkeiksi ja rivinvaihdot saavat BR-elementit mukaansa.

8 Esimerkki (Osa 2) Listaus 24.4 Ote tiedostosta clublib.inc 1: function html( $str ) 2: { 3: if ( is_array( $str ) ) 4: { 5: foreach ( $str as $key=>$val ) 6: $str[$key] = htmlstr( $val ); 7: return $str; 8: } 9: return htmlstr( $str ); 10: } 11: function htmlstr( $str ) 12: { 13: $str = htmlspecialchars( $str ); 14: $str = nl2br( $str ); 15: return $str; 16: } Kuten voit nähdä, kyseessä on kaksi funktiota. Funktio html() ottaa argumentikseen joko merkkijonon tai taulukon. Jos parametrimuuttuja sisältää taulukon, käymme sen läpi silmukassa ja muunnamme jokaisen arvon. Muutoin muunnos toteutetaan suoraan parametrimuuttujaan. Todellinen muunnos tapahtuu funktiossa htmlstr(), joka käyttää hyväkseen kahta sisäistä funktiota: htmlspecialcharacters() muuntaa jokaisen HTML-ympäristössä esityskelpoisen merkin HTML-entiteetikseen ja nl2br() lisää BR-tagit merkkijonoon tilanteen mukaan. Kun olemme asettaneet oletustiedot ja luoneet funktion, joka tulostaa tapahtumatietoa, kaikki tuo jätetään ja aletaan muodostaa lomaketta, jonka kautta käyttäjä voi valita, kuinka hän haluaa selata tapahtumia. Käyttäjän lomake on helppo rakentaa käyttämällä edellisen tunnin funktiotia, jotka osaavat tulostaa dynaamisesti HTML-koodin mukaisia OPTION-elementtejä. Kuva 24.1 esittää näytetulostuksen tiedostosta viewevents.php.

9 24. Esimerkki (Osa 2) 437 KUVA 24.1 Tulostus tiedostosta viewevents.php. viewclubs.php Käyttäjä saattaa haluta esittää tietokantatietoa kerhokohtaisesti, ei välttämättä tapahtumakohtaisesti. Tällöin tulosjoukko kaventuu kerhon tyypin ja alueen mukaan. Tällainen vaihtoehto tarjotaan viewclubs.php-näytön kautta. Skripti on listauksessa Listaus 24.5 viewclubs.php 1: <?php 2: include("dblib.inc"); 3: include("date.inc"); 4: include("clublib.inc"); 5: if ( isset($actionflag) && $actionflag == "showclubs" ) 6: $session[viewclubs] = $form; 7: elseif ( $session[viewclubs] ) 8: $form = $session[viewclubs]; 9: else 10: { 11: $session[viewclubs][area] = "ANY"; 12: $session[viewclubs][type] = "ANY"; 13: } 14: function displayclubs( ) 15: { 16: global $session; 17: $clubs = getclubs( $session[viewclubs][area],

10 Esimerkki (Osa 2) 18: $session[viewclubs][type] ); 19: if (! $clubs ) 20: { 21: print "No clubs yet that fit these conditions<p>\n"; 22: return; 23: } 24: print "<table border=1>\n"; 25: print "<td><b>club</b></td>\n"; 26: print "<td><b>area</b></td>\n"; 27: print "<td><b>type</b></td>\n"; 28: foreach ( $clubs as $row ) 29: { 30: print "<tr>\n"; 31: print "<td><a href=\"viewclub.php?club_id=$row[id]&".sid."\">". 32: html($row[name])."</a></td>\n"; 33: print "<td>$row[areaname]</td>\n"; 34: print "<td>$row[typename]</td>\n"; 35: print "</tr>\n"; 36: } 37: print "</table>\n"; 38: } 39:?> 40: <html> 41: <head> 42: <title>view clubs</title> 43: </head> 44: <body> 45: <?php 46: include("publicnav.inc"); 47:?> 48: <P> 49: <h1>view Clubs</h1> 50: <p>

11 24. Esimerkki (Osa 2) : <form action="<?php print $PHP_SELF;?>"> 52: <input type="hidden" name="actionflag" value="showclubs"> 53: <input type="hidden" name="<?php print session_name()?>" 54: value="<?php print session_id()?>"> 55: <select name=form[area]> 56: <option value="any">any Area 57: <?php writeoptionlist( "areas", $form[area] )?> 58: </select> 59: <select name=form[type]> 60: <option value="any">any type of club 61: <?php writeoptionlist( "types", $form[type] )?> 62: </select> 63: <input type = "submit" value="change"> 64: </form> 65: </p> 66: <?php 67: displayclubs( ); 68:?> 69: </body> 70: </html> Kuten voit nähdä, tämä skripti on rakenteeltaan ja logiikaltaan samanlainen kuin edellinen esimerkki. Tallennamme tämän sivun istuntomuuttujat $session[viewclubs]-elementtiin. Jos käyttäjä on lähettänyt sivun lomakkeen, päivitämme istuntomuuttujat. Jos käyttäjä ei ole lähettänyt lomaketta, mutta istuntomuuttujat ovat saatavilla, sijoitamme $session[viewclubs]-arvon $form-muuttujaan. Jos kaikki muu epäonnistuu, täytämme $session[viewclubs]-taulukon oletusarvoilla. Luomme funktion displayclubs(). Sen sisältä kutsutaan dblib-inc-tiedoston uutta funktiota, getclubs()- funktiota. Tämä funktio ottaa vastaan valinnaisesti joko kerhotaulun tyyppikentän tai aluekentän arvon: Listaus 24.6 Ote tiedostosta dlib.inc 1: function getclubs( $area="", $type="" ) 2: { 3: global $link; 4: $query = "SELECT clubs.*, areas.area as areaname, 5: types.type as typename ";

12 Esimerkki (Osa 2) 6: $query.= "FROM clubs, areas, types WHERE "; 7: $query.= "clubs.area=areas.id AND clubs.type=types.id "; 8: if ( $area!= "ANY" &&! empty( $area ) ) 9: $query.= "AND clubs.area='$area' "; 10: if ( $type!= "ANY" &&! empty( $type ) ) 11: $query.= "AND clubs.type='$type' "; 12: $query.= "ORDER BY clubs.area, clubs.type, clubs.name"; 13: $result = mysql_query( $query, $link ); 14: if (! $result ) 15: die ( "getidevents fatal error: ".mysql_error() ); 16: $ret = array(); 17: while ( $row = mysql_fetch_array( $result ) ) 18: array_push( $ret, $row ); 19: return $ret; 20: } 21: Funktio getclubs() rakentaa dynaamisen SQL-kyselyn, joka perustuu sille vietyihin argumentteihin. Oletuksena se yhdistää kerho-, alue- ja tyyppitaulut. Jos sille viedään $type- tai $area-argumentteina jotain muuta kuin tyhjä merkkijono tai "ANY"-merkkijono, se kaventaa edelleenkin WHERE-osaa SQL-lauseesta annettujen arvojen mukaisesti. Kuten ennenkin, se palauttaa nytkin moniulotteisen taulukon. Käymme silmukassa läpi getclubs()-funktion palauttaman taulukon ja kirjoitamme nimen, alueen nimen ja tyypin nimen selaimelle. Kuten aiemminkin, kerhon nimi muodostaa nytkin osan hyperlinkistä, joka osoittaa tiedostoon viewclub.php. viewclub.php Tämä viewclub.php-näyttö esittää kaiken kerhoon liittyvän tiedon. Se voidaan ottaa esille hyperlinkkien kautta, jotka osoittavat joko tiedostoon viewevents.php tai viewclubs.php. Koodissa on mukana aiempien esimerkkien logiikkaa ja useita funktiota. Koodi on listauksessa 24.7.

13 24. Esimerkki (Osa 2) 441 LISTAUS 24.7 viewclub.php 1: <?php 2: include("dblib.inc"); 3: include("clublib.inc"); 4: if (! isset($club_id) ) 5: header( "Location: viewclubs.php?".sid ); 6: $club = getclubjoined( $club_id ); 7: $club = html( $club ); 8: if ( $club[mail]!= "" ) 9: $club[mail] = "<A HREF=\"mailto:$club[mail]\">$club[mail]</A>"; 10: function displayevents() 11: { 12: global $club_id; 13: $events = getevents( $club_id ); 14: if (! $events ) 15: { 16: print "No events yet for this club<p>"; 17: return; 18: } 19: print "<table border=1>\n"; 20: print "<td><b>date</b></td>\n"; 21: print "<td><b>event</b></td>\n"; 22: print "<td><b>area</b></td>\n"; 23: print "<td><b>type</b></td>\n"; 24: foreach ( $events as $row ) 25: { 26: print "<tr>\n"; 27: print "<td>".date("j M Y H.i", $row[edate])."</td>\n"; 28: print "<td><a href=\"viewevent.php?event_id=$row[id]&".sid."\">". 29: html($row[ename])."</a></td>\n"; 30: print "<td>$row[areaname]</td>\n"; 31: print "<td>$row[typename]</td>\n"; 32: print "</tr>\n";

14 Esimerkki (Osa 2) 33: } 34: print "</table>\n"; 35: } 36:?> 37: <html> 38: <head> 39: <title>view clubs</title> 40: </head> 41: <body> 42: <?php 43: include("publicnav.inc"); 44:?> 45: <p> 46: <h1>view club details</h1> 47: <h4><?php print $club[name]?></h4> 48: <p> 49: Area: <b><?php print $club[areaname]?></b> 50: <br> 51: Type: <b><?php print $club[typename]?></b> 52: <BR> 53: Mail: <b><?php print $club[mail]?></b> 54: </p> 55: Description:<br> 56: <b><?php print $club[description]?></b> 57: <hr> 58: <?php 59: displayevents(); 60:?> 61: </body> 62: </html> Tämä skripti vaatii $club_id-parametrin. Testaamme sen ja palautamme käyttäjän viewclubs.php-näytölle, jos emme löydä parametria. Saadaksemme informaatiota kutsumme dblib.inc-tiedoston funktiota getclubjoined(). Se ottaa argumentikseen kerhon ID:n ja palauttaa taulukon:

15 24. Esimerkki (Osa 2) 443 Listaus 24.8 Ote tiedostosta dlib.inc 1: function getclubjoined( $id ) 2: { 3: global $link; 4: $query = "SELECT clubs.*, areas.area as areaname, types.type as typename A "; 5: $query.= "FROM clubs, events, areas, types WHERE "; 6: $query.= "clubs.area=areas.id 7: AND clubs.type=types.id 8: AND clubs.id='$id'"; 9: $result = mysql_query( $query, $link ); 10: if (! $result ) 11: die ( "getclubjoined fatal error: ".mysql_error() ); 12: return mysql_fetch_array( $result ); 13: } Kutsumme tätä funktiota getrow()-funktion sijaan (joka voisi myöskin palauttaa kerhotietoa), koska sen muodostama SQL-kysely sisältää alueeseen ja tyyppiin liitetyt nimet. Se tekee sen suorittamalla kerho-, alue- ja tyyppitaulukoiden välisen yhdistämisen ja tuottaa palautettavaan taulukkoon lisäelementtejä nimeltä areaname ja typename. Tallennamme getclubjoined()-funktion palauttaman taulukon muuttujaan nimeltä $club. Tämä $clubtaulukko tulostetaan selaimelle asiakirjan runkoon. Määrittelemme myös funktion nimeltä displayevents(), joka ottaa argumentikseen kerhoon liittyvän tapahtumalistaa viemällä $club_id-muuttujan getevents()- funktiolle. Kuva 24.2 esittää tiedoston viewclub.php tyypillisen tulostuksen. viewevent.php Tämä viewevent.php-tiedosto sisältää skriptimme viimeisen näytön. Se tuottaa todellisen informaation kaikista yksittäisistä tapahtumista ja siihen päästään hyperlinkkien kautta miltä tahansa julkiselta sivulta, joka listaa tapahtumien yhteenvedot. Koodi on listauksessa Listaus 24.9 viewevent.php 1: <?php 2: include("dblib.inc"); 3: include("clublib.inc"); 4: if (! isset($event_id) )

16 Esimerkki (Osa 2) 5: header( "Location: viewevents.php?".sid ); 6: $event = getevent( $event_id ); 7: html( $event ); 8:?> 9: <html> 10: <head> 11: <title>view event details</title> 12: </head> 13: <body> 14: <?php 15: include("publicnav.inc"); 16:?> 17: <P> 18: <h1>view event details</h1> 19: <h4><?php print $event[ename]?></h4> 20: <p> 21: Club: 22: <b> 23: <?php print "<a href=\"viewclub.php?club_id=$event[eclub]&".sid."\"> 24: $event[clubname]</a>" 25:?> 26: </b> 27: <br> 28: Area: <b><?php print $event[areaname]?></b> 29: <br> 30: Type: <b><?php print $event[typename]?></b> 31: </p> 32: Description:<br> 33: <?php print $event[edescription]?> 34: </body> 35: </html>

17 24. Esimerkki (Osa 2) 445 Kuten voit nähdä, näyttö on yksinkertainen. Saamme taulukon tapahtumataulukosta käyttämällä dblib.inctiedoston getevent()-funktiota. Viemme sille $event_id-muuttujan, jonka tulisi sisältää ID-arvo, joka tuli meille kyselymerkkijonon kautta. Taulukko on sitten helppoa kirjoittaa selaimelle. Voit nähdä getevent()-funktion listauksessa Se sisältää suhteellisen yksinkertaisen SQL-lauseen, joka yhdistää kerho- ja tapahtumataulukot. Listaus Ote tiedostosta dlib.inc 1: function getevent( $event_id ) 2: { 3: global $link; 4: 5: $query = "SELECT clubs.name as clubname, events.*, 6: areas.area as areaname, types.type as typename "; 7: $query.= "FROM clubs, events, areas, types WHERE "; 8: $query.= "clubs.id=events.eclub 9: AND events.area=areas.id 10: AND events.type=types.id 11: AND events.id='$event_id'"; 12: $result = mysql_query( $query, $link ); 13: if (! $result ) 14: die ( "getevent fatal error: ".mysql_error() ); 15: return mysql_fetch_array( $result ); 16: } KUVA 24.2 Tulostus tiedostosta viewclub.php.

18 Esimerkki (Osa 2) Tulevaisuus Olemme nyt työskennelleet läpi koko tapahtumapäiväkirjaskriptin. Toivon, että se kertoo hieman siitä dynamiikasta, joka liittyy pieneenkin käytännön projektiin, ja antaa tuntuman PHP:n mahdollisuuksiin. Erityisesti sinun tulisi huomata, kuinka helppoa PHP:n istuntofunktioiden on tallentaa käyttäjän asetukset sivulta sivulle. Jos käyttäjämme palaa viewevents.php-sivulle milloin tahansa yksittäisen istunnon aikana, hän näkee samat valinnat, jotka hän on tehnyt tälle näytölle aiemmin tekemänsä vierailun aikana. Ilman istuntofunktioita meidän olisi luultavasti vietävä paljon enemmän informaatiota pyynnöltä toiselle käyttämällä URL-kyselymerkkijonoja. Vaikka tapahtumapäiväkirja ei olekaan aivan täydellinen, se kuitenkin edustaa prototyyppiä, joka kykenee näyttämään käyttäjän toiminnan. Olisi hyvä lisätä muutamia piirteitä, erityisesti hakusanalla hakeminen. Olisi myös hienoa, jos käyttäjä voisi kommentoida tapahtumia. Se lisäisi kokonaan uuden ulottuvuuden skriptiin ja tekisi siitä suositumman ja vuorovaikutteisemman. Voisimme antaa kerhon ylläpitäjille mahdollisuuden sisällyttää sivuille linkkejä kuviin, jotka liittyvät kerhon toimintaan. Voisimme myös antaa kerhon toimittajille maahdollisuuden ladata kuvia suoraan selaimelta palvelimelle. Jäsenet voisivat myös kopioida tapahtumia ja laittaa tapahtumia järjestykseen. Ennen kuin skripti voidaan jaakaa asiakkaalle, haluamme muodostaa myös hallintaympäristön, jossa on työkaluja ei-tekniseen toimintaan, jossa tilejä ja tapahtumia voidaan muokata ja poistaa sekä lisätä ja muokata alue- ja tyyppiluokkia. Olet saattanut myös huomata, että skriptin tulos on nykyään hieman aneeminen. Meidän tulisi ehkä antaa tuotos visuaaliselle suunnittelijalle ja pyytää häntä muokkaamaan ulkoasua. Onneksi suurin osa koodistamme on helposti työstettävää, vaikkakin meitä saatetaan pyytää vielä muokkaamaan silmukoita, jotka tulostavat yhteenvetoja. Yhteenveto Tällä ja edellisellä tunnilla veimme päätökseen työmme, täysin toimivan Web-sovelluksen. Käytimme tekniikoita, joiden avulla tallensimme tilan, todensimme käyttäjiä, muokkasimme ja esitimme tietokantojen tietoa ja paljon muutakin. Moninäyttöistä koodiesimerkkia ei ole helppo esittää kirjassa, mutta yrittäminenkin on hyödyllistä. Olemme ottaneet esille aiheita, joihin törmäät uudelleen ja uudelleen, joten sinun tulee rakentaa strategioita tilainformaation ylläpitämiseen. K&V K No siinä se oli; mitäs seuraavaksi? V Nyt kaikki riippuu sinusta. Tämä kirja sisältää tarpeeksi informaatiota, jotta voit luoda omia kehittyneitä sovelluksiasi ja ympäristöjäsi. Kun käytät antamiamme taitoja ja hakemalla lisätietoa, mikään ei voi estää sinua!

19 24. Esimerkki (Osa 2) 447 Työpaja Työpaja tarjoaa joukon kertauskysymyksiä, joiden avulla voit tarkistaa, oletko ymmärtänyt materiaalin sisältöä. Yritä ymmärtää vastaukset ennen kuin jatkat seuraaviin lukuihin. Vastaukset ovat liitteessä A. Kysymyksiä 1. Millä funktiolla lisäät elementin taulukon loppuun? 2. Onko mahdollista lisätä elementti taulukkoon käyttämättä funktiota? 3. Millä funktiolla käännät erikoismerkit HTML-muotoon? 4. Millä funktiolla käännät rivinvaihtomerkit BR-tageiksi? 5. SID-vakiolla voit viedä istunnon ID:n toiselle sivulle HTML-linkin kautta. Kuinka voisit saada aikaan saman lomakkeen kautta? Toiminta 1. Tutki tämän tunnin koodia. Onko jokin tekniikoista tai aiheista sopiva omiin projekteihisi? 2. Selaile kirjaa taaksepäin ja tutki muistiinpanojasi. Jos olet seurannut kirjaa ikään kuin kurssin muodossa, muista, että omien muistiinpanojen kertaaminen täydentää suorittamasi kurssin.

20 Esimerkki (Osa 2)

OSA IV Yhteenveto. Oppitunti. 23. Esimerkki (Osa 1) 24. Esimerkki (Osa 2)

OSA IV Yhteenveto. Oppitunti. 23. Esimerkki (Osa 1) 24. Esimerkki (Osa 2) OSA IV Yhteenveto Oppitunti 23. Esimerkki (Osa 1) 24. Esimerkki (Osa 2) 23. Esimerkki (Osa 1) 395 OPPITUNTI 23 Esimerkki (Osa 1) Jos olet ollut mukana alusta alkaen, sinulla pitäisi nyt olla hyvät perustyökalut

Lisätiedot

OPPITUNTI 20 Tilan tallentaminen istuntofunktioilla

OPPITUNTI 20 Tilan tallentaminen istuntofunktioilla 20. Tilan tallentaminen istuntofunktiolla 353 OPPITUNTI 20 Tilan tallentaminen istuntofunktioilla Edellisellä tunnilla tutkimme tilan tallentamista evästeiden ja kyselymerkkijonojen avulla. PHP4 on kuitenkin

Lisätiedot

6. Funktiot 85. Kuinka funktioita määritellään ja kutsutaan. Kuinka funktioille viedään arvoja ja niistä palautetaan arvoja

6. Funktiot 85. Kuinka funktioita määritellään ja kutsutaan. Kuinka funktioille viedään arvoja ja niistä palautetaan arvoja 6. Funktiot 85 OPPITUNTI 6 Funktiot Funktiot ovat hyvin laaditun skriptin perusta. Ne tekevät koodista helppolukuista ja uudelleen käytettävää. Laajoja projekteja on mahdotonta hallita ilman funktioiden

Lisätiedot

OPPITUNTI15 Päivämäärien käsittely

OPPITUNTI15 Päivämäärien käsittely 15. Päivämäärien käsittely 269 OPPITUNTI15 Päivämäärien käsittely Päivämäärät kuuluvat niin usein jokapäiväiseen elämään, että niiden käsittely on rutiininomaista. Kalenterin käsittely ei aina ole kuitenkaan

Lisätiedot

OPPITUNTI 12 MySQL-tietokannan käyttö

OPPITUNTI 12 MySQL-tietokannan käyttö 12. MySQL-tietokannankäyttö 211 OPPITUNTI 12 MySQL-tietokannan käyttö PHP-kieleen kuuluu olennaisesti tietokantojen käyttämisen helppous. Tällä tunnilla keskitymme MySQLtietokantaan, mutta samanlaisia

Lisätiedot

OPPITUNTI 11 DBM-funktioiden käyttö

OPPITUNTI 11 DBM-funktioiden käyttö 11. DBM-funktioiden käyttö 193 OPPITUNTI 11 DBM-funktioiden käyttö Jos sinulla ei ole pääsyä SQL-tietokantaan, esimerkiksi MySQL- tai Oracle-tietokantaan, sinulla on varmaankin mahdollisuus käyttää DBM-tyylistä

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

7. Taulukot 105. Kuinka taulukoiden tietoa käsitellään ja lajitellaan

7. Taulukot 105. Kuinka taulukoiden tietoa käsitellään ja lajitellaan 7. Taulukot 105 OPPITUNTI 7 Taulukot Taulukot ja niiden käsittelyyn liittyvät toiminnot laajentavat suuresti PHP4-skriptien käyttöaluetta ja joustavuutta. Kun tunnet taulukot, voit tallentaa niihin monimutkaisia

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

OPPITUNTI 19 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla

OPPITUNTI 19 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla 19. Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla 337 OPPITUNTI 19 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla HTTP on tilaton protokolla. Se merkitsee sitä, että jokainen

Lisätiedot

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014 Tietokanta Tietokanta on työkalu, jolla opettaja ja opiskelijat voivat julkaista tiedostoja, tekstejä, kuvia ja linkkejä alueella. Opettaja määrittelee lomakkeen muotoon kentät, joiden kautta opiskelijat

Lisätiedot

OPPITUNTI 5 Ohjelman kulku

OPPITUNTI 5 Ohjelman kulku 5. Ohjelman kulku 67 OPPITUNTI 5 Ohjelman kulku Viime tunnilla luomamme skriptit olivat suoraviivaisia. Ohjelmalauseet suoritettiin aina samassa järjestyksessä, joten ohjelmissamme ei ollut lainkaan joustavuutta.

Lisätiedot

OPPITUNTI 3 Ensimmäinen skripti

OPPITUNTI 3 Ensimmäinen skripti 3. Ensimmäinen skripti 35 OPPITUNTI 3 Ensimmäinen skripti Kun olet asentanut PHP:n ja asettanut sen kokoonpanon, on aika laittaa ohjelmisto testaukseen. Tällä tunnilla luot ensimmäisen skriptisi ja tutkit

Lisätiedot

Tuotteiden tiedot: Lisää uuden tuotteen tiedot. Muuta tai poista tuotteen tiedot. Selaa kaikkien tuotteiden tietoja.

Tuotteiden tiedot: Lisää uuden tuotteen tiedot. Muuta tai poista tuotteen tiedot. Selaa kaikkien tuotteiden tietoja. laskutus_index http://media.stadia.fi/~0700527/laskutus/laskutus_index.html Sivu 1/1 13.12.2007 Laskutus -tietokanta Henkilöiden tiedot: Lisää uuden henkilön tiedot Muuta tai poista henkilön tiedot Selaa

Lisätiedot

8. Oliot 123. Kuinka luokkia luodaan ja olioita saadaan aikaan. Kuinka luodaan ja käsitellään ominaisuuksia ja metodeja

8. Oliot 123. Kuinka luokkia luodaan ja olioita saadaan aikaan. Kuinka luodaan ja käsitellään ominaisuuksia ja metodeja 8. Oliot 123 OPPITUNTI 8 Oliot Oliopohjainen ohjelmointi on vaarallista. Se muuttaa koodaamista koskevia ajatuksiasi ja kun uudet käsitteet ovat saaneet jalansijaa, ne eivät katoa mitenkään. PHP on Perlin

Lisätiedot

JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia)

JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia) JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia) Esim 5.1 laskujärjestys operaattorit var tulos = 5 + 4 * 12 / 4; document.write("5 + 4 * 12 / 4 laskutoimituksen tulos

Lisätiedot

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36 !!!!! Relaatiotietokannat ovat vallanneet markkinat tietokantojen osalta. Flat file on jäänyt siinä kehityksessä jalkoihin. Mutta sillä on kuitenkin tiettyjä etuja, joten ei se ole täysin kuollut. Flat

Lisätiedot

12.10.2011. Erittäin nopea tapa saada kehitysympäristö php:lle pystyyn Voidaan asentaa muistitikulle

12.10.2011. Erittäin nopea tapa saada kehitysympäristö php:lle pystyyn Voidaan asentaa muistitikulle (Ei yhtään videota tällä kertaa.) X niin kuin Cross-Platform, Apache, MySql, PHP, Perl Kehitysympäristö EI tuotantokäyttöön Monet tärkeät tietoturva-asetukset ovat oletuksena pois päältä Erittäin nopea

Lisätiedot

Makrojen mystinen maailma lyhyt oppimäärä

Makrojen mystinen maailma lyhyt oppimäärä Makrojen mystinen maailma lyhyt oppimäärä Makrot osana SAS-teknologiaa Yleiskuva Jouni Javanainen Aureolis lyhyesti Aureolis on jatkuvia Business Intelligence -palveluita tuottava asiantuntijaorganisaatio

Lisätiedot

SQL Buddy JAMK Labranet Wiki

SQL Buddy JAMK Labranet Wiki Page 1 of 9 SQL Buddy JAMK Labranet Wiki Sisällysluettelo Yleistä SQL Buddy:sta kotisivu :http://sqlbuddy.com/ SQL Buddy on kevyt hallintatyökalu MySQL-tietokannalle. Järjestelmävaatimukset Serverin vaatimukset

Lisätiedot

Järjestelmän kriittisimmille toiminnallisuuksille (listattu alla), toteutetaan 1

Järjestelmän kriittisimmille toiminnallisuuksille (listattu alla), toteutetaan 1 1. Testattavat asiat Järjestelmän kriittisimmille toiminnallisuuksille (listattu alla), toteutetaan 1 selainyhteensopivuustesti käyttäen Suomessa eniten käytössä olevia selaimia. Uuden keräyksen lisääminen

Lisätiedot

LIITE A Vastaukset kysymyksiin

LIITE A Vastaukset kysymyksiin LIITE A Vastaukset kysymyksiin Liite A Vastaukset kysymyksiin 449 Tämä liite antaa vastaukset lukujen lopussa olleisiin kysymyksiin. 450 Liite A Vastaukset kysymyksiin TUNTI 1 1. Mistä kirjaimet PHP tulevat?

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat

Lisätiedot

Kotisivuohjeet. Eteläpohjalaiset Kylät ry. Sivupohjien rakenne

Kotisivuohjeet. Eteläpohjalaiset Kylät ry. Sivupohjien rakenne Kotisivuohjeet Tässä ohjeessa käydään läpi kotisivujen tekemisen perusteet keskittyen html-koodiin ja sen ominaisuuksiin. Sivupohjissa ulkoasu ja rakenne on pääasiassa jaettu erilliseen css-tyylitiedostoon,

Lisätiedot

Päivitysohje Opus Dental

Päivitysohje Opus Dental Päivitysohje Opus Dental 7.1.460 1. Päivitysohjelman lataaminen Avaa Opus Dental -internetsivu osoitteessa www.opusdental.com. Klikkaa etusivulta Suomen lippua avataksesi suomenkielisen sivuston. Valitse

Lisätiedot

Tietokannan luominen:

Tietokannan luominen: Moodle 2 Tietokanta: Tietokanta on työkalu, jolla opettaja ja opiskelijat voivat julkaista tiedostoja, tekstejä, kuvia, linkkejä alueella. Opettaja määrittelee lomakkeen muotoon kentät, joiden kautta opiskelijat,

Lisätiedot

Pauliina Munter/Suvi Junes Tampereen yliopisto / Tietohallinto Valitse muokkaustila päälle kurssialueen etusivun oikean yläkulman painikkeesta.

Pauliina Munter/Suvi Junes Tampereen yliopisto / Tietohallinto Valitse muokkaustila päälle kurssialueen etusivun oikean yläkulman painikkeesta. Sanasto Sanasto -työkalulla voi laatia sanakirjan tapaisen sanaston, jonka hakusanoja (käsitteitä ja niiden määritelmiä) voidaan selata ja opettajan niin halutessa myös kommentoida. Sekä opettaja että

Lisätiedot

OSAAMISENHALLINTA OMAT TIEDOT. Peruskäyttäjän pikaohje

OSAAMISENHALLINTA OMAT TIEDOT. Peruskäyttäjän pikaohje OSAAMISENHALLINTA OMAT TIEDOT Peruskäyttäjän pikaohje Omat tiedot Omien tietojen etusivulla näkyy kirjautuneen käyttäjän nimi sekä käytössä olevat osiot Osaamisenhallinnan käyttöönotossa määritellään eri

Lisätiedot

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito Henri Kinnunen, Seppo Tompuri, Tero Malkki, Matti Heiskanen, Tommi Rönkönharju, Tuomas Valkeapää Sisällysluettelo 1. Alkusanat.2 2. Asennusohje..2 3.

Lisätiedot

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013 Tehtävä 2.2. Tehtävä-työkalun avulla opiskelijat voivat palauttaa tehtäviä Moodleen opettajan arvioitaviksi. Palautettu tehtävä näkyy ainoastaan opettajalle, ei toisille opiskelijoille. Tehtävä-työkalun

Lisätiedot

Yhdistäminen. Tietolähteen luominen. Word-taulukko. Joukkokirje, osoitetarrat Työvälineohjelmistot 1(5)

Yhdistäminen. Tietolähteen luominen. Word-taulukko. Joukkokirje, osoitetarrat Työvälineohjelmistot 1(5) Työvälineohjelmistot 1(5) Yhdistäminen Yhdistämistoiminnolla voidaan tehdä esimerkiksi joukkokirjeitä, osoitetarroja, kirjekuoria, jne. Siinä yhdistetään kaksi tiedostoa: Pääasiakirja Tietolähde Pääasiakirjassa

Lisätiedot

Osallistavan suunnittelun kyselytyökalu

Osallistavan suunnittelun kyselytyökalu Osallistavan suunnittelun kyselytyökalu Käyttöohje ARFM- hankkeessa jatkokehitetylle SoftGIS-työkalulle Dokumentti sisältää ohjeistuksen osallistavan suunnittelun työkalun käyttöön. Työkalu on käytettävissä

Lisätiedot

OPPITUNTI 21 Palvelinympäristö

OPPITUNTI 21 Palvelinympäristö 21. Palvelinympäristö 365 OPPITUNTI 21 Palvelinympäristö Edellisellä tunnilla tutkimme tekniikoita, joiden avulla voidaan kommunikoida etäkoneiden kanssa ja saada tietoa käyttäjiltä. Tällä tunnilla käsittelemme

Lisätiedot

OSA III PHP:n käyttö. Oppitunti

OSA III PHP:n käyttö. Oppitunti OSA III PHP:n käyttö Oppitunti 9. Lomakkeiden käsittely 10. Tiedostojen käsittely 11. DBM-funktioiden käyttö 12. MySQL-tietokantojen integrointi 13. Pintaa syvemmältä 14. Dynaamisten kuvien käsittely 15.

Lisätiedot

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008 Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT Jouni Huotari S2008 2 Proseduurit Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

Lisätiedot

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen

Lisätiedot

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

INTINU13A6 Java sovellukset

INTINU13A6 Java sovellukset Johdanto Kurssin tavoitteena oli luoda tietokantaa käyttävä websovellus Java EE ohjelmointikielellä, sekä hyödyntää muun muassa servlettejä sekä JSP sivuja ja muita tekniikoita monipuolisesti. Webserverinä

Lisätiedot

Sonera Viestintäpalvelu VIP VIP Laajennettu raportointi Ohje

Sonera Viestintäpalvelu VIP VIP Laajennettu raportointi Ohje Sonera Viestintäpalvelu VIP VIP Laajennettu raportointi Ohje Sisällysluettelo VIP Laajennettu raportointi... 3 Luo raportti Laajennetun raportoinnin työkaluilla... 4 Avaa Laajennettu raportointi... 4 Valitse

Lisätiedot

582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus 582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus Sisältö Mikä on web-sovellus? Selaimen rooli web-sovelluksessa Palvelimen rooli web-sovelluksessa Aineistopyynnöt Tiedon välittäminen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento Näkymät... 2 Relaatiotyypit... 2 Taulu - Tallennettu relaatio... 3 Näkymä - Virtuaalirelaatio... 3 Tulosrelaatio - Kyselyn tulos... 3 Otetaulut - Tauluun tallennettu kyselyn tulos...

Lisätiedot

TEEMA 2 Aineistot. Kirjautuminen Moodleen. Sisältö. Kirjaudut Moodleen sivulta http://moodle.pkamk.fi/. Voit vaihtaa kielen valikosta.

TEEMA 2 Aineistot. Kirjautuminen Moodleen. Sisältö. Kirjaudut Moodleen sivulta http://moodle.pkamk.fi/. Voit vaihtaa kielen valikosta. TEEMA2 Aineistot Sisältö Moodleen kirjautuminen...1 Aineistot (Lisää aineisto ) - Web-sivu...2 - Linkit ulkoisille sivuille...4 - Valmiit tiedostot...5 Etusivun näkymän jäsennys otsikoilla...7 Tiedostojen

Lisätiedot

Moodle-oppimisympäristö

Moodle-oppimisympäristö k5kcaptivate Moodle-oppimisympäristö Opiskelijan opas Sisältö 1. Mikä on Moodle? 2. Mistä löydän Moodlen? 3. Kuinka muokkaan käyttäjätietojani? 4. Kuinka ilmoittaudun kurssille? 5. Kuinka käytän Moodlen

Lisätiedot

Zeon PDF Driver Trial

Zeon PDF Driver Trial Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin

Lisätiedot

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016)

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Tietokoneavusteinen opetus -kurssilla opetetaan Adobe Flash CS6:n käyttämistä neljänä kertana: 11.3.2016, 15.3.2016, 18.3.2016 ja 1.4.2016. Harjoituskerroilla

Lisätiedot

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b Pythonin Kertaus Cse-a1130 Tietotekniikka Sovelluksissa Versio 0.01b Listat 1/2 esimerkkejä listan peruskäytöstä. > lista=['kala','kukko','kissa','koira'] ['kala','kukko','kissa','koira'] >lista.append('kana')

Lisätiedot

3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä.

3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä. PHP-kielen perusteet Käytä lähteenä PHP:n virallista manuaalia http://www.php.net/docs.php tai http://www.hudzilla.org/php (siirry Paul Hudsonin verkkokirjaan). Lisää materiaalia suomeksi esimerkiksi ohjelmointiputkan

Lisätiedot

OPPITUNTI 16 Tiedon käsittely

OPPITUNTI 16 Tiedon käsittely 16. Tiedon käsittely 283 OPPITUNTI 16 Tiedon käsittely Tällä tunnilla käsittelemme tarkemmin tiedon testaamista ja muokkaamista. Tutkimme uudelleen tietotyyppejä. PHP käsittelee tietotyyppejä automaattisesti

Lisätiedot

Opetuksen suunnittelu

Opetuksen suunnittelu Asio-Tilavarausohjelmisto/ Opetuksen suunnittelu Opetuksen suunnittelu Suljettujen aikojen määritys Kiinteiden opetusaikojen määritys Opetuperiodit Kaikissa vaiheissa tilanteen mukainen yhteys opiskelijahallinto-ohjelmistoon

Lisätiedot

Google Cloud Print -opas

Google Cloud Print -opas Google Cloud Print -opas Tietoja Google Cloud Printistä Tulostaminen Google Cloud Printillä Liite Sisällys Tietoja oppaasta... 2 Oppaassa käytetyt symbolit... 2 Vastuuvapauslauseke... 2 1. Tietoja Google

Lisätiedot

Sukupuu -ohjelma. Ossi Väre (013759021) Joni Virtanen (013760641)

Sukupuu -ohjelma. Ossi Väre (013759021) Joni Virtanen (013760641) Sukupuu -ohjelma Ossi Väre (013759021) Joni Virtanen (013760641) 7.11.2011 1 Johdanto Toteutimme C -kielellä sukupuuohjelman, johon käyttäjä voi lisätä ja poistaa henkilöitä ja määrittää henkilöiden välisiä

Lisätiedot

Maanmittauslaitoksen nimistö Spatialite-tietokantana. - kuvitettu ohje Quantum GIS 1.8.0 -ohjelmaa varten

Maanmittauslaitoksen nimistö Spatialite-tietokantana. - kuvitettu ohje Quantum GIS 1.8.0 -ohjelmaa varten Maanmittauslaitoksen nimistö Spatialite-tietokantana - kuvitettu ohje Quantum GIS 1.8.0 -ohjelmaa varten Taustaa Maanmittauslaitoksen nimistöaineistot ovat ladattavissa tekstitiedostoina Maanmittauslaitoksen

Lisätiedot

VISUAALISEN PALVELUN TALLENNUS- JA TOISTO-OHJE

VISUAALISEN PALVELUN TALLENNUS- JA TOISTO-OHJE VISUAALISEN PALVELUN TALLENNUS- JA TOISTO-OHJE VISUAALISEN PALVELUN TALLENNUS- JA TOISTO-OHJE Soita tallentavaan virtuaalihuoneeseen Telia tallentava virtuaalihuone Voit tallentaa kokouksen ja jakaa sen

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM GROUP 04. Teemu Laakso Henrik Talarmo ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................

Lisätiedot

Tutoriaaliläsnäoloista

Tutoriaaliläsnäoloista Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus

Lisätiedot

JavaScript alkeet Esimerkkikoodeja moniste 2

JavaScript alkeet Esimerkkikoodeja moniste 2 JavaScript alkeet Esimerkkikoodeja moniste 2 Esim 5.1 laskujärjestys operaattorit var tulos = 5 + 4 * 12 / 4; document.write("5 + 4 * 12 / 4 laskutoimituksen tulos on " + tulos,"");

Lisätiedot

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012 Tiedostot Uudet ominaisuudet: - Ei Tiedostot-kohtaa alueen sisällä, vaan tiedostonvalitsin, jolla tiedostot tuodaan alueelle siihen kohtaan missä ne näytetään - Firefox-selaimella voi työpöydältä raahata

Lisätiedot

KÄYTTÖOHJE / Ver 1.0 / Huhtikuu WordPress KÄYTTÖOHJE Sotkamo 2016

KÄYTTÖOHJE / Ver 1.0 / Huhtikuu WordPress KÄYTTÖOHJE Sotkamo 2016 / / WordPress KÄYTTÖOHJE Sotkamo 2016 Sisältö Sisältö 1. Yleistä 2. Kirjautuminen ylläpitoon 2.1. Kirjaudu osoitteessa: http://sotkamo.valudata.fi/admin Myöhemmin: http://www.sotkamo.fi/admin 2.2 Salasana

Lisätiedot

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä

Lisätiedot

Webforum. Version 14.4 uudet ominaisuudet. Viimeisin päivitys: 2014-12-6

Webforum. Version 14.4 uudet ominaisuudet. Viimeisin päivitys: 2014-12-6 Webforum Version 14.4 uudet ominaisuudet Viimeisin päivitys: 2014-12-6 Sisältö Tietoja tästä dokumentista... 3 Yleistä... 4 Yleistä & hallinnointi... 5 Dokumentit... 5 Perättäinen tarkistus- ja hyväksymisprosessi...

Lisätiedot

Kuva: Ilpo Okkonen

Kuva: Ilpo Okkonen OodiHOPS OHJAAJAN OHJE 14.2.2017 Kuva: Ilpo Okkonen OodiHOPS Oulun yliopistossa Oulun yliopiston koulutusneuvosto on päättänyt, että OodiHOPS-toiminto otetaan käyttöön vähintään aloittavilla opiskelijoilla

Lisätiedot

Tällä viikolla. Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä

Tällä viikolla. Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä Tällä viikolla Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä Seuraavissa harjoituksissa käytetään tukkukauppa-kantaa. 1. Hae kaikki toimittajat

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava

Lisätiedot

Palvelinpuolen ohjelmointi

Palvelinpuolen ohjelmointi Palvelinpuolen ohjelmointi Staattiset ja dynaamiset web-sivut Staattiset web-sivut ovat valmiissa muodossaan palvelimella (tai paikallisesti omalla koneella). Javascript mahdollistaa paikalliset dynaamiset

Lisätiedot

Osallistavan suunnittelun kyselytyökalu

Osallistavan suunnittelun kyselytyökalu Osallistavan suunnittelun kyselytyökalu Käyttöohje InnoGIS- hankkeen aikana kehitetylle pilottiversiolle Dokumentti sisältää pilottiversiona toimivan kyselyn laatimiseen ja vastaamiseen liittyvän ohjeistuksen.

Lisätiedot

Joomla pikaopas. Yksinkertainen opas, jossa neuvotaan esimerkkisivuston teko Joomla julkaisujärjestelmällä vaihe vaiheelta.

Joomla pikaopas. Yksinkertainen opas, jossa neuvotaan esimerkkisivuston teko Joomla julkaisujärjestelmällä vaihe vaiheelta. Joomla pikaopas Yksinkertainen opas, jossa neuvotaan esimerkkisivuston teko Joomla julkaisujärjestelmällä vaihe vaiheelta. Paavo Räisänen www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa

Lisätiedot

Toteutusdokumentti. Aija. Helsinki 1.9.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteenlaitos

Toteutusdokumentti. Aija. Helsinki 1.9.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteenlaitos Toteutusdokumentti Aija Helsinki 1.9.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteenlaitos Sisältö 1. Johdanto...3 2. SQL -lauseet...3 3. Ajastettutoiminta - backrun.php...3

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

Raporttiarkiston (RATKI) käyttöohjeet Ohjeet

Raporttiarkiston (RATKI) käyttöohjeet Ohjeet Raporttiarkiston (RATKI) käyttöohjeet Ohjeet 15.11.2012 1.0 Vastuutaho TRAFI Sisällys Raporttiarkiston (RATKI) käyttöohjeet 1 1. Johdanto 3 1.1. Esitiedot 3 1.2. Käyttöoikeudet 3 1.3. Sisäänkirjautuminen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

Käyttöohje. Ticket Inspector. Versio 1.0. Sportum Oy

Käyttöohje. Ticket Inspector. Versio 1.0. Sportum Oy Käyttöohje Ticket Inspector Versio 1.0 Sportum Oy 10.5.2017 Sivu 1 Sisällysluettelo 1. Yleistä... 2 2. Kirjautuminen ensimmäisellä kerralla / PIN-koodin unohtuessa... 3 3. Tunnistautuminen... 4 4. Päänäkymä...

Lisätiedot

Pikaopas. Ohjeiden etsiminen Hae ohjesisältöä napsauttamalla kysymysmerkkiä.

Pikaopas. Ohjeiden etsiminen Hae ohjesisältöä napsauttamalla kysymysmerkkiä. Pikaopas Microsoft Access 2013 näyttää erilaiselta kuin aiemmat versiot. Tämän oppaan avulla pääset alkuun nopeasti ja saat yleiskuvan uusista ominaisuuksista. Näyttökoon muuttaminen tai tietokannan sulkeminen

Lisätiedot

Entiteetit erotetaan muusta tekstistä & ja puolipiste. esim. copyright-merkki näkyy sivulla

Entiteetit erotetaan muusta tekstistä & ja puolipiste. esim. copyright-merkki näkyy sivulla 1 ENTITEETIT Tehtävä 1. Tietokoneet ja käyttöjärjestelmät käyttävät erilaisia merkkijärjestelmiä ja varsinkin Internetin alkutaipaleella aiheutti sen, että jotkut merkit eivät näkyneet kaikilla oikein.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

Oppimateriaalin lisääminen

Oppimateriaalin lisääminen Helsingin yliopisto 1 Oppimateriaalin lisääminen Tässä ohjeessa käsitellään oppimateriaalilinkin lisäämistä sekä opintokohteelle, että opetustapahtumalle. WebOodiin on mahdollista syöttää oppikirjojen

Lisätiedot

ICT1TN004. Lomakkeet. Heikki Hietala

ICT1TN004. Lomakkeet. Heikki Hietala Lomakkeet Heikki Hietala Lomakkeet Lomakkeita käytetään keräämään tietoa käyttäjältä ja siirtämään se palvelimelle Lomakkeen luominen ei yksin riitä, vaan pitää luoda myös lomakkeenkäsittelijä Lomakkeen

Lisätiedot

DXL Library ja DXL-kielen olemus. Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/

DXL Library ja DXL-kielen olemus. Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/ DXL Library ja DXL-kielen olemus Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/ DOORS extension Language DXL on DOORSin laajennuskieli, jolla voidaan kehittää lisätoiminnallisuutta.

Lisätiedot

1 PHP-sovelluksen toiminta

1 PHP-sovelluksen toiminta AMVA48-49 HTML ja PHP-ohjelmointi, 2 ov Yleistä kurssista HTMLperusteita PHP-kielen perusrakenteet HTMLlomakkeen käsittely Tiedoston käsittely Evästeiden käyttö Istunnon hallinta Oppimistehtävät PHP-KIELEN

Lisätiedot

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL FinFamily PostgreSQL 1 Sisällys / Contents FinFamily PostgreSQL... 1 1. Asenna PostgreSQL tietokanta / Install PostgreSQL database... 3 1.1. PostgreSQL tietokannasta / About the PostgreSQL database...

Lisätiedot

OSAAMISENHALLINTA HENKILÖSTÖ. Esimiehen pikaohje

OSAAMISENHALLINTA HENKILÖSTÖ. Esimiehen pikaohje OSAAMISENHALLINTA HENKILÖSTÖ Esimiehen pikaohje Omat tiedot, etusivu Omien tietojen etusivulla näkyy kirjautuneen käyttäjän nimi sekä käytössä olevat osiot Näkymäksi voi valita joko ns. Tiilet tai Etusivun

Lisätiedot

Kyselyn yleisrakenne:

Kyselyn yleisrakenne: SQL kysely Kyselyn yleisrakenne: select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta] Kysely tuottaa nimettömän

Lisätiedot

T-111.361 Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

T-111.361 Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot T-111.361 Hypermediadokumentin laatiminen -Ohjelmointi Peruskäsitys www-ohjelmoinnin kentästä Tekniikat interaktiivisuuden toteuttamiseen tekniikat tekniikat Tietokannat Juha Laitinen TKK/TML juha.laitinen@hut.fi

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link

TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link TimeEdit on työjärjestys- (lukujärjestys) ja tilanvarausohjelmisto. Sisältö 1 Oikeudet... 2 2 TimeEdit Web... 2 3 Kirjautuminen...

Lisätiedot

Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle

Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle 2 Sisällys 1 Palvelunhallinta... 3 1.1 Käyttäjäryhmän luominen... 3 2 Tehtävienhallinta- perustiedot... 4 2.1 Yhtiön perustiedot... 4 2.2 Tehtävä-/

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti ITKP2 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 17. toukokuuta 219 Yleistä Tentti 1 oli pistekeskiarvon (14,6) perusteella hieman tavanomaista helpompi. Omasta tehtäväpaperista

Lisätiedot

Visma Business AddOn Factoring-laskuaineisto. Käyttäjän käsikirja

Visma Business AddOn Factoring-laskuaineisto. Käyttäjän käsikirja Visma Business AddOn Factoring-laskuaineisto Käyttäjän käsikirja Oppaan päiväys: 09.06.2011 Asiakaspalvelu: Helpdesk: www.visma.fi Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin

Lisätiedot

1 www-sivujen teko opetuksessa

1 www-sivujen teko opetuksessa RäsSe, Tekniikka/Kuopio Sivu 1 1 www-sivujen teko opetuksessa 1.1 Yleistä Mitä materiaalia verkkoon? Tyypillisesti verkossa oleva materiaali on html-tiedostoja. Näitä tiedostoja tehdään jollakin editorilla

Lisätiedot

Hyperlinkin tekeminen artikkeliin

Hyperlinkin tekeminen artikkeliin Hyperlinkin tekeminen artikkeliin 1 Hyperlinkit artikkelissa Ovat yleensä linkkejä PIKIn hakutuloksiin (yksittäinen teos tai hakutuloslista) tai PIKin muihin sivuihin Muihin tietolähteisiin: Wikipedia,

Lisätiedot

OSA I Aloitetaan. Oppitunti. 1. PHP: Kotisivusta portaaliin 2. PHP:n asentaminen 3. Ensimmäinen skriptisi. 17 Johdanto

OSA I Aloitetaan. Oppitunti. 1. PHP: Kotisivusta portaaliin 2. PHP:n asentaminen 3. Ensimmäinen skriptisi. 17 Johdanto 17 Johdanto OSA I Aloitetaan Oppitunti 1. PHP: Kotisivusta portaaliin 2. PHP:n asentaminen 3. Ensimmäinen skriptisi 18 1. Kotisivusta Portaaliin 19 OPPITUNTI 1 PHP: Kotisivusta portaaliin Tervetuloa PHP-maailmaan!

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

Helsingin Sanomat ipad

Helsingin Sanomat ipad Helsingin Sanomat ipad Sovelluksen mainosaineistojen tekniset ohjeet: kokosivu ja etusivu 13.5.2013 SISÄLLYS ipad-mainokset 2 Tekniikka ja tiedostokoot 3 Orientaatio 4 Linkit: richie-modal-browser 4 Gesture

Lisätiedot

Ennakkosuunnitelman luonti

Ennakkosuunnitelman luonti Elokuu 2019 JETI-pikaohje Ennakkosuunnitelman luonti Tämän dokumentin sisällöstä Tämä dokumentti on pikaohje ennakkosuunnitelman laadinnasta ja koskee seuraavia ennakkosuunnitelman luomisen vaiheita: 1.

Lisätiedot