Php summary
Upcoming SlideShare
Loading in...5
×
 

Php summary

on

  • 652 views

 

Statistics

Views

Total Views
652
Views on SlideShare
652
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Php summary Php summary Presentation Transcript

  • LAMP = Linux, Apache, MySQL, PHP
  • Why PHP? • Open Source = FREE. • Available on practically any platform. • Very ubiquitous. Most web hosting services offer PHP. (See LAMP software bundle on previous slide). • Why some people hate it: http://webonastick.com/php.html • Why others are more upbeat: http://net.tutsplus.com/articles/editorials/why-2013-is-the-year-of-php/ • Greatest Strength: Strong support for Open Database Connectivity (ODBC). PHP can access and manipulate any ODBC compliant database, including: • MySQL, Oracle, MSSQLServer, MSAccess • MongoDB, Cassandra
  • PHP Syntax and Operators • Started as a "template" language for dynamic webpages.Now mostly used as a server-side scripting language for web development. • Acts as a "filter": • INPUT: text and/or PHP instructions from a file or data stream • OUTPUT: another data stream (usually HTML, but can also be JSON or XML) • Syntax is similar to C/C++/Java. OPERATORS: • • • • • • • Arithmetic Comparison Bitwise Assignment Execution Array Type • Great reference material: • http://www.php.net/ • http://www.w3schools.com/php/
  • Some PHP Operators See Arithmetic Operators page (http://www.php.net/manual/en/language.operators.arithmetic.php) Assignment Same as: $a += $b $a = $a + $b Addition $a -= $b $a = $a - $b Subtraction $a *= $b $a = $a * $b Multiplication $a /= $b $a = $a / $b Division $a %= $b $a = $a % $b Modulus See String Operators page (http://www.php.net/manual/en/language.operators.string.php) $a .= $b $a = $a . $b Concatenate See Bitwise Operators page (http://www.php.net/manual/en/language.operators.bitwise.php) $a &= $b $a = $a & $b Bitwise And $a |= $b $a = $a | $b Bitwise Or $a ^= $b $a = $a ^ $b Bitwise Xor $a <<= $b $a = $a << $b Left shift $a >>= $b $a = $a >> $b Right shift
  • HTML Code: Nested Structures // PHP is typically embedded in HTML code. <html> <body> <table border> <tr> <th>ID</th> <th>Name</th> <th>Department</th> </tr> <tr> <td>00128</td> <td>Zhang</td> <td>Comp. Sci.</td> </tr> </table> <form action="PersonQuery" method=get> Search for: <select name="persontype"> <option value="student" selected>Student </option> <option value="instructor"> Instructor </option> </select> <br> Name: <input type=text size=20 name="name"> <input type=submit value="submit"> </form> </body> </html> 5
  • Simple PHP Example • A PHP scripting block is delineated by: <?php start tag ?> end tag • A PHP scripting block • can be placed anywhere in the HTML document. • Each code line must end with a semicolon. • Two ways to output text: • echo and print. • All variables in start with a $ symbol. • Comments: // or /* */ 6
  • Multiple Code Declaration Blocks PHP code declaration blocks execute on Web server first before Web page is sent to client. ... </head> <body> <h1>Multiple Script Sections</h1> <h2>First Script Section</h2> <p> Output from the first script section.</p> <h2>Second Script Section</h2> <p> Output from the second script section.</p> </body> </html> 7
  • Opening and Closing MySQL Connection /* The connection is stored in variable $DBConnect for later use in the script */ <?php // Create connection $DBConnect = mysql_connect(“www.psme.foothill.edu”,“1234532","abc123","my_ db"); // Check connection if (mysql_connect_errno($DBConnect)) { echo "Failed to connect to MySQL: " .mysql_connect_error(); } ?> 8
  • PHP and MySQL • PRIMARY KEY clause indicates a field or fields that will be used as a referential index for the table • AUTO_INCREMENT clause creates a field that is automatically updated with the next sequential value for that column. • NOT NULL clause creates a field that must contain data. • Use with the mysql_query() function • DROP TABLE statement to delete a table • UPDATE statement to update records • DELETE statement to delete records
  • Adding, Deleting, Updating Records // INSERT Example // omit auto_increment field, put null to no data field$SQLstring = "INSERT INTO $TableName " . "(name, email, phone) " . "VALUES ('Name2', 'name2@gmail.com', NULL)"; $QueryResult = mysql_query($SQLstring, $DBConnect); // UPDATE Example $SQLstring = "UPDATE customer SET name = 'Name_a', phone = '510-112-3523' WHERE cust_id = 88 "; $QueryResult = mysql_query($SQLstring, $DBConnect); // DELETE Example $SQLstring = "DELETE FROM $TableName WHERE cust_id = 88"; $QueryResult = mysql_query($SQLstring, $DBConnect);
  • PHP and MySQL • mysql_connect() function opens a connection to a MySQL database server • The mysql_close() function closes a database connection • You use the mysql_create_db() function to create a new database • The mysql_select_db() function selects a database • You use the mysql_drop_db() function to delete a database • The mysql_query() function sends SQL statements to MySQL • A result pointer is a special type of variable that refers to the currently selected row in a resultset • You use the CREATE TABLE statement with the mysql_query() function to create a table
  • Working with Query Results • mysql_fetch_row() returns the fields in the current row of a result set into an indexed array and moves the result pointer to the next row. • mysql_fetch_assoc() returns the fields in the current row of a resultset into an associative array and moves the result pointer to the next row • mysql_free_result() closes a resultset • mysql_num_rows() returns the number of rows in a query result, and the mysql_num_fields() function returns the number of fields in a query result • With queries that return results, such as SELECT queries, you can use the mysql_num_rows() function to find the number of records returned from the query
  • Function: mysql_affected_rows() $SQLstring = "UPDATE student SET id = 33213 WHERE name='Zhang'"; $QueryResult = @mysql_query($SQLstring, $DBConnect); if ($QueryResult === FALSE) echo "<p>Unable to execute the query.</p>" . "<p>Error code " . mysql_errno($DBConnect) . ": " . mysql_error($DBConnect) . "</p>"; else echo "<p>Successfully updated " . mysql_affected_rows($DBConnect) . " record(s).</p>";
  • Indexed Arrays Two ways to create indexed arrays (numeric keys). 1. Using the array() construct $array_name = array(element0, element1, element2, element3); 2. Using square brackets[]. The next consecutive index number is assigned automatically. Default start is 0. $array_name[] $array_name[] $array_name[] $array_name[] = = = = element0; element1; element2; element3; Example: $array_name[100] = "array100";
  • Iterating through an Array This declares and initializes an indexed array named $DaysOfWeek[] and uses a foreach statement to iterate through it: $DaysOfWeek = array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); foreach ($DaysOfWeek as $Day) { echo "<p>$Day</p>n"; }
  • Retrieving Records into an Indexed Array mysql_fetch_row() returns the fields in the current row of a result set into an indexed array and moves the result pointer to the next row echo "<table width='100%‘ border='1'>"; echo "<tr><th>Make</th><th>Model</th> <th>Price</th><th>Quantity</th></tr>"; $Row = mysql_fetch_row($QueryResult); do { echo "<tr><td>{$Row[0]}</td>"; echo "<td>{$Row[1]}</td>"; echo "<td align='right'>{$Row[2]}</td>"; echo "<td align='right'>{$Row[3]}</td></tr>"; $Row = mysql_fetch_row($QueryResult); } while ($Row);
  • Retrieving Records into an Indexed Array (contd) $SQLstring = "SELECT * FROM student"; $QueryResult = @mysql_query($SQLstring, $DBConnect); echo "<table width='100%' border='1'>n"; echo "<tr><th>ID</th><th>NAME</th><th>DEPT_NAME</th> <th>tot_cred</th>tr>n"; while (($Row = mysql_fetch_row($QueryResult)) !== FALSE) { echo "<tr><td>{$Row[0]}</td>"; echo "<td>{$Row[1]}</td>"; echo "<td>{$Row[2]}</td>"; echo "<td align='right'>{$Row[3]}</td> ></tr>n "; } echo "</table>n";
  • Associative Arrays Two ways to create associative arrays (keys are alphanumeric names). 1. Using the array() construct $array_name = array(key => value, key2 => value2, …); 2. Using square brackets[]. $array_name["key3"] = "value3"; $array_name["key4"] = "value4"; Example: echo "<p> The value of key3 is {$array_name['key3']}.</p>n";
  • Autoglobals • Predefined global arrays which contain client, server, and environment information that you can use in your scripts. • Autoglobals are associative arrays that can only be referenced using an alphanumeric key, not an index number. $_COOKIE - values passed to the current script as HTTP cookies $_ENV - environment information $_FILES - information about uploaded files $_GET - values from a form submitted with the “get” method $_POST - values from a form submitted with the “post” method $_REQUEST - all the elements in the $_COOKIE, $_GET, and $_POST arrays $_SERVER - information about the Web server that served the current script $_SESSION - session variables that are available to the current script $GLOBALS - References to all variables defined with global scope
  • Data Validation Use Web form controls for validating input types (such as check boxes, radio buttons, and selection lists) that limit user from entering invalid data. Useful Functions: • NUMERIC DATA: (is_double(), is_float(), is_int(), is_integer(), is_long(), is_null(), is_numeric(), is_object(), is_real(), is_string()). • STRING DATA: • stripslashes() removes the leading slashes for escape sequences in strings. • trim() removes any leading or trailing white space from a string.
  • Input Types text A single line text field password Same as text, but the input is not displayed textarea A multi-line text field radio Set of radio buttons; user can select only 1. checkbox Set of checkboxes; user can select 0 or more. option/select Drop-down lists Button Button img Button with an image file File upload button hidden Static value. 21
  • Web Form Input Type="text" <form action="display.php" method="get"> <label>name: </label> <input type="text" name="name"/><br /> <label>Address: </label> <input type="text" Address=“Address"/><br /> <label>&nbsp;</label> <input type="submit" value="Submit"/> </form> // Get data and store into variables: $name = $_GET['name']; $Address = $_GET[‘Address']; 22
  • <!DOCTYPE html> <html> <head> <title>arrays2.php</title> </head> <body> <?php echo "Method1: Loop Through an Indexed Array <br>"; $DaysOfWeek = array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); foreach ($DaysOfWeek as $Day) echo "$Day<br>"; echo "<br>Method2: Loop Through an Indexed Array <br>"; $arrlength = count($DaysOfWeek); for ($x = 0; $x < $arrlength; $x++) { echo $DaysOfWeek[$x]; echo "<br>"; } // Associative Array $keys = array("key1" => "value1", "value2", "kay3" => "value3"); echo "Loop Through an Associative echo "<br>"; foreach ($keys as $x => $x_value) echo "Key=" . $x . ", Value=" echo "<br>"; } ?> </body> </html> "key2" => Array"; { . $x_value; OUTPUT: Method1: Loop Through an Indexed Array Sunday Monday Tuesday Wednesday Thursday Friday Saturday Method2: Loop Through an Indexed Array Sunday Monday Tuesday Wednesday Thursday Friday Saturday Loop Through an Associative Array Key=key1, Value=value1 Key=key2, Value=value2 Key=kay3, Value=value3
  • <!DOCTYPE html> <html> <head> <title>MySQL Database - create table</title> </head> <body> <h1>Creating table customercontact with test</h1> <?php $host="www.psme.foothill.edu"; $user = "10062690"; $password = "glennb00"; $DBName = "test"; OUTPUT: $DBConnect = mysql_connect($host, $user, $password) or die(mysql_error()); if ($DBConnect === FALSE) { echo "<p>The Database server is not available.</p>"; die("<p>MySQL_error: " . mysql_error() . "<br />MySQL_errno: " . mysql_errno() . "</p>"); } else { echo "<p>The Database server is running.</p>"; $DBSelect = mysql_select_db($DBName, $DBConnect); if ($DBSelect === FALSE) { echo "<p>Could not Select the "$DBName" database: " . "<br />MySQL_error: " . mysql_error($DBConnect) . "<br />MySQL_errno: " . mysql_errno($DBConnect) . "</p>"; } else { echo "<p>Database $DBName successfully selected</p>"; $TableName = "customercontact"; $SQLstring = "SHOW TABLES LIKE '$TableName'"; $Result = mysql_query($SQLstring, $DBConnect); if (mysql_num_rows($Result) > 0) { echo "<p>The $TableName table already exists!</p>"; } else { $SQLstring = "CREATE TABLE customercontact (cust_id INT NOT NULL PRIMARY KEY, " . "fname varchar(20), lname varchar(20), email varchar(20), phone varchar(20))"; $Result = mysql_query($SQLstring, $DBConnect); if ($Result === FALSE) { echo "<p>Unable to execute the query. " . "<br />MySQL_error: " . mysql_error($DBConnect) . "<br />MySQL_errno: " . mysql_errno($DBConnect) . "</p>"; } else { echo "<p>Successfully created the table. </p>"; }}}} mysql_close($DBConnect); ?> </body> </html> • Creating table customerconta ct with test • The Database server is running. • Database test successfully selected • The customercontac t table already exists!
  • webform1.html <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>GET</title> </head> <body> <h1>Web Form - Method get</h1> <h2 style="text-align: center">Form</h2> <form name="scholarship" id="scholarship" action="demo1.php" method="get"> <p>First Name: <input type="text" name="fName" id="fName" /></p> <p>Last Name: <input type="text" name="lName" id="lName" /></p> <p><input type="reset" value="Clear Form" />&nbsp;&nbsp;<input type="submit" name="Submit" id="Submit" value="Send Form" /> </form> </body> </html> demo1.php <!DOCTYPE html> <html> <head> <title>demo1.php- GET</title> </head> <body> <?php $firstName = $_GET["fName"]; $lastName = $_GET["lName"]; echo "<p>Thank you for filling out the scholarship form, $firstName $lastName.</p>"; echo '<table border="1">'; foreach ($_GET as $k => $v) { echo '<tr><td>' . $k . '</td><td>' . $v . '</td></tr>'; } echo '</table>'; echo "<p>$_GET<br />"; foreach ($_GET as $ArrayIndex => $ArrayValue) { echo "ArrayIndex: {$ArrayIndex}; ArrayValue: {$ArrayValue}. <br />"; } echo "</p>"; ?> </body> </html>