You are on page 1of 81

Introduction to PHP & MySQL

A 4 days Course
Presented by
Shaizar Md Daud @ Jat
Course Outline
 Introduction to HTML
 Introduction to PHP
 PHP - The Language
 Using Variables
 Giving Your Code Life – Flow Control
 Using Functions
 Creating Custom Functions
 Making Things Constant
 Variable Scope – Now You See Me, Now You Don’t!
 Introduction to Database & MySQL
 Using MySQL from PHP
 Putting things Together – Lab Project

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Day 1
 Introduction to HTML
 Introduction to PHP
 PHP - The Language

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
What is HTML?
 Hyper-Text Markup
Language
– Language for creating web
pages
– Defines format & layout of a
document
– Documents are Portable
– Link multiple documents
– Local and remote
documents
– A simple text file
– Tag-based language

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
HTML Markup Tags

 Single Tags
– No Content or Child Tags

Syntax:
<tagname/> or <tagname>
Example:
<br/>, <br>, <hr>

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
HTML Markup Tags, cont’d

 Start and End Tags


– Contains Content or Child Tags

Syntax:
<tagname>Some Content</tagname>
Example:
<p>The quick brown fox jumps over the lazy
dog</p>

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
HTML Comments

 Comments are not rendered (displayed)

Syntax:
<!-- comment text -->
Example:
<!--
This is a HTML comment
-->

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
HTML Document Structure

 Document Type
Declaration
 HTML Container
– HTML Header
– HTML Body

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
DOCTYPE
HTML Document Structure

Common DOCTYPEs:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<!DOCTYPE HTML PUBLIC


"-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
HTML Container Tags
HTML Document Structure

Start Tag End Tag Description


<html> </html> HTML Container

<head> </head> HTML Header Section

<body> </body> HTML Body Section

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
HTML Layout Tags

Start Tag End Tag Description


<p> </p> Paragraph Text
<br/> - Insert Line Break
<div> </div> Division Block

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
HTML Text Formatting Tags
Start Tag End Tag Description
<b> </b> Bold Text

<strong> </strong> Bold Text

<i> </i> Italic Text

<u> </u> Underline Text

<hr/> - Horizontal Line

<hn> </hn> Text Headers [ n = 1 – 6 ]

<span> </span> Apply Format Elements to Text

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
HTML List Tags
Start Tag End Tag Description
<ol> </ol> Ordered List
<ul> </ul> Unordered List
<li> </li> List Item

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Ordered List Tag

Syntax:
<ol type=“[ 1 | I | i | A | a ]”>
[ list items ]</ol>
Example:
<ol>
<li>Item 1</li>
<li>Item 2</li>
</ol>

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Unordered List Tag

Syntax:
<UL type=“[ DISC | CIRCLE | SQUARE ]”>
[ list items ]</UL>
Example:
<UL>
<li>Item 1</li>
<li>Item 2</li>
</UL>

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
HTML Table

Start Tag End Tag Description

<table> </table> Table Container

<tr> </tr> Table Row

<td> </td> Table Data

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
HTML Table Example
<table border=“0” cellpadding=“2” cellspacing=“2” width=“600”>
<tr>
<td width=“200”>Row 1, Column 1</td>
<td width=“400”>Row 1, Column 2</td>
</tr>
<tr>
<td align=“left” valign=“center”>Row 2, Column 1</td>
<td>Row 2, Column 2</td>
</tr>
</table>

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
HTML Tags
HTML Links

Start Tag End Tag Description

<a href=“[url]”> </a> Anchor link to a URL.

<a href=“#myId”> </a> Anchor link to an Target ID.

<a id=“myId”> </a> Target ID to link to.

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
HTML Forms

Start Tag End Tag Description


<form> </form> Form Container

<input /> - Input Fields

<select> </select> Select Box Container

<option> </option> Select Box Options

<textarea> </textarea> Text Box

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Form Tag

Syntax:
<FORM action=“<url>” method=“[ GET | POST ]”>
Example:
<FORM action=“register.php” method=“post”>
. . .
. . .
</FORM>

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Input Tag
 Attributes
– type
 TEXT | CHECKBOX | RADIO | PASSWORD | HIDDEN |
SUBMIT | RESET | BUTTON
– name
– value
– size
– maxlength
– checked

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Input Tag, cont’d

Example:
<INPUT type=“text” name=“fullname” size=“50”/>
<INPUT type=“password” name=“pass” size=“50”/>
<INPUT type=“radio” name=“sex” value=“m”/> Male
<INPUT type=“radio” name=“sex” size=“f”/> Female
<INPUT type=“checkbox” name=“class” size=“php_b”/>
<INPUT type=“checkbox” name=“class” size=“php_i”/>
<INPUT type=“checkbox” name=“active” size=“1”/> Yes
<INPUT type=“submit” name=“cmdSave” value=“Save”/>

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Select Tag

 Attributes
– name
– size
– multiple

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Option Tag

 Used within SELECT tags.


 Defines SELECT Items.
 Attributes
– value
– selected
 CDATA = Select item label

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
SELECT … OPTION

Example:
<SELECT name=“addr_state” size=“1”>
<OPTION value=“sel” selected>Selangor</OPTION>
<OPTION value=“joh”>Johor</OPTION>
<OPTION value=“ked”>Kedah</OPTION>
</SELECT>

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
SELECT … OPTION (multiple)

Example:
<SELECT name=“avail_state” size=“10” multiple>
<OPTION value=“sel” selected>Selangor</OPTION>
<OPTION value=“joh”>Johor</OPTION>
<OPTION value=“ked” selected>Kedah</OPTION>
</SELECT>

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
TextArea Tag

 Attributes
– rows
– cols
– wrap: [ soft | hard | off ]
 CDATA
– Text to be displayed in the form field.

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
TextArea Tag, cont’d

Example:
<TEXTAREA name=“notes” rows=“10” cols=“40”>
Text displayed in TextArea form field.
It supports multiple text lines.
</TEXTAREA>

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
What is PHP
 Scripting Language
 Server-side Scripting
 Embedded Scripts
 Based on C, C++, and Perl
 Create web pages dynamically
 Multi-platform (*nix, Windows)
 Supports Apache and IIS web server
 CGI or Server Module

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Server-side vs Client-side
 Server-side  Client-side
– Pro – Pro
 More secure  Better response
 Client independent  Richer user interface
 Light-weight Client  No or lighter server
 Easier deployment requirements
– Con – Con
 Powerful hardware
 Less secure
 High server resource
 Client dependent
 High Network resource
 Challenging Deployment

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
PHP Basic Construct
<html>
<body>
HTML Section <h1>HTML Title</h1>
<?php
echo “Hello from PHP”;
PHP Section
?>
</body>
HTML Section </html>

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Language Syntax

 Start PHP Section


– <?php or <?
 End PHP Section
– ?>
 PHP Statement
– A_php_statement;

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
PHP Comments
 Not executed
 Source-code documentation
 Disable parts of codes
 C-style Comments
– // Single line comment
– /* Multi-line comment */
 Perl-style Comments (not recommended)
– # Perl-style single line comment

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Day 2

 Using Variables
 Giving Your Code Life – Flow Control

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Data Types

Data Type Description

String “text”, ‘text’

Integer -2, -1, 0, 1, 2

Float 0.4, 1.234

Boolean True, false, 0, <none zero>

Array

Object

Resource Database, file


9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz
ar.com)
Variables
 Syntax
– $my_variable_1
– $_my_variable
 Case sensitive
 Container to hold a value or values
 Values can be changed
 Variable name starts with an alphabet or underscore
 Variable name consist of alphabets, underscores,
and numbers

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Giving Variables a Value

 Examples
– $my_string = “My String”;
– $my_numbers = 123;
– $fn_return_value = my_function();

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Arrays

 Stores multiple values in a single variable


 Stored values can be of different types
 Index-based or Key-based

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Index-based Array

 Numeric indexes
 Examples
– $index_array[0] = “Item 1”;
– $index_array[1] = “Item 2”;
– $index_array[2] = “Item 3”;
 Index starts from 0

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Associate Array

 Keys instead of numeric indexes


 Examples
– $kb_array[“one”] = “Item 1”;
– $kb_array[“two”] = “Item 2”;
– $kb_array[“three”] = “Item 3”;

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Constants

 Value is fixed once created


 Example – Creating constants
– define(“MYCONST”, 23);
– define(“MYCONSTSTR”, “My String”);
 Example – Using constants
– print “The value of MYCONST:” . MYCONST;

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Operators
Operator Description Operator Description
= Assignment + Addition
== Equality ++ Increment
=== Exact Equality - Subtraction
! Not -- Decrement
&& Logical AND * Multiply
|| Logical OR / Division
>, >= Greater (or Equal) % Modulo
<, <= Less (or Equal) . Concatenate (string)

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Form Variables

 $_GET[<field_name>]
 $_POST[<field_name>]
 $_REQUEST[<field_name>]

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Flow Control

 Conditional Statements
 Loops

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
IF Statement

Syntax:
if ( <condition> ) {
[ block to be executed if <condition> is true ]
}

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
IF … ELSE

Syntax:
if ( <condition> ) {
[ block to be executed if <condition> is true ]
}
else {
[ block to be executed if <condition> is false ]
}

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
IF … ELSE IF

Syntax:
if ( <condition1> ) {
[ block to be executed if <condition1> is true ]
}
else if ( <condition2> ) {
[ block to be executed if <condition2> is true ]
}

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Nested IF

Syntax:
if ( <condition1> ) {
[ block to be executed if <condition1> is true ]
if ( <condition2> ) {
[ block to be executed if
<condition2> is true ]
}
[ continue ]
}

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Example of IF Statements
if( $_POST[‘location’] == ‘sel’ ) {
print “Selangor”;
}

if( $_POST[‘age’] <=18 ) {


print “You must be above 18”;
}
else {
print “You may proceed”;
}

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Loops

 WHILE loop
 FOR loop
 FOREACH loop

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
WHILE Loop

Syntax:
while ( <condition> ) {
[ block to be executed
while <condition> is true ]
}

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
WHILE Loop Example

Example:
$i = 0;
while( $i < sizeof( $profile ) ) {
print “Item $i: “
. $profile[ $i ]
. ‘<br />’;
$i++;
}

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
FOR Loop

Syntax:
for ( <init>; <condition>; <iterator> ) {
[ block to be executed
while <condition> is true ]
}

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
FOR Loop Example

Example:
for ( $i = 0; $i < sizeof( $profile ); $i++ ) {
print “Item $i: “
. $profile[ $i ]
. ‘<br />’;
}

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
FOREACH Loop

Syntax 1:
foreach ( <array> as <var_value> ) {
[ block to be executed for each item in array ]
}

Syntax 2:
foreach ( <array> as <var_key> => <var_value> ) {
[ block to be executed for each item in array ]
}

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
FOREACH Loop Example

Example 1:
foreach ( $profile as $item ) {
print “Item: “
. $item
. ‘<br />’;
}

Example 2:
foreach ( $profile as $key => $item ) {
print “Item “ . $key . “: “
. $item
. ‘<br />’;
}

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Day 3

 Using Functions
 Creating Custom Functions
 Making Things Constant
 Variable Scope – Now You See Me, Now
You Don’t!

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Using Functions

Syntax:
function_name([<param>])
Example:
echo date();
echo date( ‘d-m-Y’ );
$a = sprintf( ‘hello’ );

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
User-defined functions

Syntax:
function function_name() {
}
function function_name($param1, $param2=2) {
return $rv;
}

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Variable Scope

 Global Scope
– Accessible throughout script
 Local Scope
– Accessible within a function
 GLOBAL keyword
– Access global variables within a function

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Global keyword

Example:
$cfgHost = ‘localhost’;
function getHostName() {
global $cfgHost;
$label = ‘The hostname is: ‘; // local scope.
echo $label . $cfgHost;
}

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Inserting External Files

 include([<path>]<filename>);
 include_once([<path>]<filename>);
 require([<path>]<filename>);
 require_once([<path>]<filename>);

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Day 4

 Introduction to Database & MySQL


 Using MySQL from PHP
 Putting things Together – Lab Project

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Database
 A structured collection
db1
of data
 Contains 1 or more db1.table_1 db1.table_3

Tables
db1.table_2 db1.table_4

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Table
 Tables contain records
 Records contain fields
 Fields have values

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Creating a Database

Syntax:
CREATE DATABASE dbname;
Example:
CREATE DATABASE training;

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Using a Database

Syntax:
USE dbname;
Example:
USE training;

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Creating a Table

Syntax:
CREATE TABLE table_name (
field1_name field_spec,
field2_name field_spec
);
Example:
CREATE TABLE student (
st_id bigint primary key auto_increment,
st_fname varchar(100),
st_age tinyint unsigned
);
9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz
ar.com)
Querying a Table

Syntax:
SELECT <field_list> FROM <table_name>
[ WHERE <condition> ];
Example:
SELECT * FROM student;
SELECT * FROM student WHERE st_age > 20;

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Inserting a Record

Syntax:
INSERT INTO `table_name` (<fieldlist>) VALUES
(<valuelist>};
Example:
INSERT INTO student (st_fname, st_age) VALUES
( ‘Ahmad Albab’, 20 );

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Updating a Record

Syntax:
UPDATE table_name SET <field value list>
[ WHERE <condition> ];
Example:
UPDATE student
SET
st_fname = ‘Jat’,
st_age = 22
WHERE st_id = 1;

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Deleting a Record or Records

Syntax:
DELETE FROM table_name [ WHERE <condition> ];
Example:
DELETE FROM student WHERE st_id = 2;
DELETE FROM student WHERE st_age < 18;

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
PHP Functions for MySQL
PHP Function Description
mysql_connect() Connect to a MySQL database server
mysql_select_db() Make a database active
mysql_query() Execute SQL statement on active database
Fetch a row from query result and return as
mysql_fetch_array()
data as an array of fields and values
Returns the last inserted ID from an
mysql_insert_id()
auto_increment field
mysql_error() Returns the last MySQL error message.

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
mysql_connect()

Syntax:
resource mysql_connect (
[string server
[, string username
[, string password
[, bool new_link
[, int client_flags]]]]]);
Example:
$dbh = mysql_connect( ‘localhost’, ‘root’, ‘’ );

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
mysql_select_db()

Syntax:
bool mysql_select_db (
string database_name
[, resource link_identifier] )
Example:
$stat = mysql_select_db( ‘training’, $dbh );

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
mysql_query()

Syntax:
resource mysql_query (
string query
[, resource link_identifier] )
Example:
$rh = mysql_query( ‘SELECT * FROM student’, $dbh );

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
mysql_fetch_array()

Syntax:
array mysql_fetch_array (
resource result
[, int result_type] )
Example:
$row = mysql_fetch_array( $rh );

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
mysql_insert_id()

Syntax:
int mysql_insert_id(
[resource link_identifier] )
Example:
$newId = mysql_insert_id( $dbh );

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
mysql_error()

Syntax:
string mysql_error( [resource link_identifier] )
Example:
$errMsg = mysql_error( $dbh );

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Putting It All Together

 Lab Project

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)
Thank You

 Shaizar Md Daud @ Jat


 jat@shaizar.com
 Tel: 012-311 2506

9 - 12 April 2007 Trainer: Shaizar Md Daud (jat@shaiz


ar.com)

You might also like