Title: Coldfusion%20and%20PHP%20introduction
1Coldfusion and PHP introduction
- University of California, Berkeley
- School of Information
- IS 257 Database Management
2Lecture Outline
- Review
- Databases for Web Applications Overview
- ColdFusion
- DiveShop in ColdFusion
- PHP
- DiveShop in PHP
- More on MySQL and SQL
3Lecture Outline
- Review
- Databases for Web Applications Overview
- ColdFusion
- DiveShop in ColdFusion
- PHP
- DiveShop in PHP
- More on MySQL and SQL
4Dynamic Web Applications 2
5Server Interfaces
Adapted from John P Ashenfelter, Choosing a
Database for Your Web Site
6Web Application Server Software
- ColdFusion
- PHP
- ASP
- All of the are server-side scripting languages
that embed code in HTML pages
7Lecture Outline
- Review
- Databases for Web Applications Overview
- ColdFusion
- DiveShop in ColdFusion
- PHP
- DiveShop in PHP
- Introduction to ORACLE and SQL-Plus
8Web Application Server Software
- ColdFusion
- PHP
- ASP
- All of the are server-side scripting languages
that embed code in HTML pages
9ColdFusion
- Developing WWW sites typically involved a lot of
programming to build dynamic sites - e.g. Pages generated as a result of catalog
searches, etc. - ColdFusion was designed to permit the
construction of dynamic web sites with only minor
extensions to HTML through a DBMS interface
10ColdFusion
- Started as CGI
- Drawback, as previously discussed, is that the
entire system is run for each cgi invocation - Split into cooperating components
- Windows service -- runs constantly
- Server modules for 4 main Web Server API (glue
that binds web server to ColdFusion service)
Apache, ISAPI, NSAPI, WSAPI - Special CGI scripts for other servers
11What ColdFusion is Good for
- Putting up databases onto the Web
- Handling dynamic databases (Frequent updates,
etc) - Making databases searchable and updateable by
users.
12Requirements
- Unix or Windows systems
- Install as SuperUser
- Databases must be defined via data source names
(DSNs) by administrator
13Requirements and Set Up
- Field names should be devoid of spaces. Use the
underscore character, like new_items instead of
"new items." - Use key fields. Greatly reduces search time.
- Check permissions on the individual tables in
your database and make sure that they have
read-access for the username your Web server uses
to log in. - If your fields include large blocks of text,
you'll want to include basic HTML coding within
the text itself, including boldface, italics, and
paragraph markers.
14Templates
- Assume we have a database named
contents_of_my_shopping_cart.mdb -- single table
called contents... - Create an HTML page (uses extension .cfm), and
before ltHEADgt...
15Templates cont.
- ltCFQUERY NAME cart" DATASOURCEcontents_of_my_s
hopping_cart"gt - SELECT FROM contents lt/CFQUERYgt
- ltHEADgt
- ltTITLEgtContents of My Shopping Cartlt/TITLEgt
- lt/HEADgt
- ltBODYgt
- ltH1gtContents of My Shopping Cartlt/H1gt
- ltCFOUTPUT QUERY cart"gt
- ltBgtItemlt/Bgt ltBRgt
- Date_of_item ltBRgt
- Price ltPgt
- lt/CFOUTPUTgt
- lt/BODYgt
- lt/HTMLgt
16Templates cont.
Contents of My Shopping Cart
Bouncy Ball with Psychedelic Markings
12 December 1998
0.25
Shiny Blue Widget 14
December 1998 2.53
Large Orange Widget
14 December 1998
3.75
17CFIF and CFELSE
ltCFOUTPUT QUERY cart"gt Item Item
ltBRgt ltCFIF Picture EQ""gt ltIMG
SRCgeneric_picture.jpg"gt ltBRgt ltCFELSEgt
ltIMG SRC"Picture"gt ltBRgt lt/CFIFgt lt/CFOUTPUTgt
18More Templates
ltCFQUERY DATASOURCE AZ2gt INSERT INTO
Employees(firstname, lastname, phoneext)
VALUES(firstname, lastname, phoneext)
lt/CFQUERYgt ltHTMLgtltHEADgtltTITLEgtEmployee
Addedlt/TITLEgt ltBODYgtltH1gtEmployee
Addedlt/H1gt ltCFOUTPUTgt Employee ltBgtfirstname
lastnamelt/Bgt added. lt/CFOUTPUTgtlt/BODYgt lt/HTMLgt
19CFML ColdFusion Markup Language
- Read data from and update data to databases and
tables - Create dynamic data-driven pages
- Perform conditional processing
- Populate forms with live data
- Process form submissions
- Generate and retrieve email messages
- Perform HTTP and FTP function
- Perform credit card verification and
authorization - Read and write client-side cookies
20ColdFusion Diveshop
21Lecture Outline
- Review
- Databases for Web Applications Overview
- ColdFusion
- DiveShop in ColdFusion
- PHP
- DiveShop in PHP
- More on ORACLE and SQL-Plus
22PHP
- PHP is an Open Source Software project with many
programmers working on the code. - Commonly paired with MySQL, another OSS project
- Free
- Both Windows and Unix support
- Estimated that more than 250,000 web sites use
PHP as an Apache Module.
23PHP Syntax
- Similar to C or Java (note lines end with )
- Includes most programming structures (Loops,
functions, Arrays, etc.) - Loads HTML form variables so that they are
addressable by name
ltHTMLgtltBODYgt lt?php myvar Hello World
echo myvar ?gt lt/BODYgtlt/HTMLgt
24Combined with MySQL
- DBMS interface appears as a set of functions
ltHTMLgtltBODYgt lt?php db mysql_connect(localhost
, root) mysql_select_db(mydb,db) result
mysql_query(SELECT FROM employees,
db) Printf(First Name s ltbrgt\n,
mysql_result(result, 0 first) Printf(Last
Name s ltbrgt\n, mysql_result(result, 0
last) ?gtlt/BODYgtlt/HTMLgt
25Diveshop PHP
- Examples on Harbinger/People
26ASP Active Server Pages
- Another server-side scripting language
- From Microsoft using Visual Basic as the Language
model (VBScript), though Javascript (actually MS
Jscript) is also supported - Works with Microsoft IIS and gives access to ODBC
databases - Most commonly used for Access or MS SQL Server
27ASP Syntax
lt SQL"SELECT last, first FROM employees
ORDER BY last" set conn
server.createobject("ADODB.Connection")
conn.open employee" set peopleconn.execute(
SQL) gt lt do while not people.eof set
resultlinepeople(0) , people(1) ltBRgt
Response.Write(resultline)
people.movenext loopgt lt people.close gt
28Lecture Outline
- Review
- Databases for Web Applications Overview
- ColdFusion
- DiveShop in ColdFusion
- PHP
- DiveShop in PHP
- More on MySQL and SQL
29Today
- More on SQL for data manipulation and
modification
30SELECT
- Syntax
- SELECT DISTINCT attr1, attr2,, attr3 as
label, function(xxx), calculation, attr5, attr6
FROM relname1 r1, relname2 r2, rel3 r3 WHERE
condition1 AND OR condition2 ORDER BY attr1
DESC, attr3 DESC
31SELECT Conditions
- equal to a particular value
- gt greater than or equal to a particular value
- gt greater than a particular value
- lt less than or equal to a particular value
- ltgt or ! not equal to a particular value
- LIKE wom_n (Note different wild card from
Access) - opt1 SOUNDS LIKE opt2
- IN (opt1, opt2,,optn)
- BETWEEN opt1 AND opt2
- IS NULL or IS NOT NULL
32Aggregate (group by) Functions
- COUNT(dataitem)
- COUNT(DISTINCT expr)
- AVG(numbercolumn)
- SUM(numbercolumn)
- MAX(numbercolumn)
- MIN(numbercolumn)
- STDDEV(numbercolumn)
- VARIANCE(numbercolumn)
- and other variants of these
33Numeric Functions
- ABS(n)
- ACOS(n)
- ASIN(n)
- ATAN(n)
- ATAN2(n, m)
- CEIL(n)
- COS(n)
- COSH(n)
- CONV(n, f-base,t-base)
- COT(n)
- DEGREES(n)
- EXP(n)
- EXP(n)
- FLOOR(n)
- LN(n)
- LOG(n,b)
- MOD(n)
- PI()
- POWER(n,p)
- ROUND(n)
- SIGN(n)
- SIN(n)
- SINH(n)
- SQRT(n)
- TAN(n)
- TANH(n)
- TRUNCATE(n,m)
34Character Functions returning character values
- CHAR(n,)
- CONCAT(str1,str2,)
- LOWER(char)
- LPAD(char, n,char2), RPAD(char, n,char2)
- LTRIM(char, n, cset), RTRIM(char, n, cset)
- REPLACE(char, srch, repl)
- SOUNDEX(char)
- SUBSTR(char, m, n)
- UPPER(char)
35Character Function returning numeric values
- ASCII(char)
- INSTR(char1, char2)
- LENGTH(char)
- BIT_LENGTH(str)
- CHAR_LENGTH(str)
- LOCATE(substr,str)
- LOCATE(substr,str,pos)
- and many other variants.
36Date functions
- ADDDATE(dt, INTERVAL expr unit) or ADDDATE(dt,
days) - ADDTIME(dttm, time)
- LAST_DAY(dt)
- MONTH(dt) YEAR(dt) DAY(dt)
- MONTHNAME(dt)
- NOW()
- NEW_TIME(d, z1, z2) -- PST, AST, etc.
- NEXT_DAY(d, dayname)
- STR_TO_DATE(str,format)
- SYSDATE()
37- Setting up Diveshop on MySQL