Presentation is loading. Please wait.

Presentation is loading. Please wait.

© Anselm Spoerri Web Design Information Visualization Course Prof. Anselm Spoerri

Similar presentations


Presentation on theme: "© Anselm Spoerri Web Design Information Visualization Course Prof. Anselm Spoerri"— Presentation transcript:

1 © Anselm Spoerri Web Design Information Visualization Course Prof. Anselm Spoerri aspoerri@scils.rutgers.edu

2 © Anselm Spoerri Lecture 9 – Overview Dynamic Web Programming Concepts PHP –Introduction | Basic Operations & Coding MySQL –Introduction | Simple Queries MySQL & PHP –Set Up PHP Testing Server in Dreamweaver –login.php –Connect to whereru Database –Run Query & Process Results Source: "Learning PHP, MySQL, and JavaScript" by Robin Nixon.

3 © Anselm Spoerri Web Pages Created So Far Static HTML Pages –Same each time Want Interactive or Dynamic Web Pages –Depending on browser, time of day or user behavior or … different appearance –Processing user inputs data via HTML forms –Need some sort of Web programming (JavaScript, PHP)

4 © Anselm Spoerri Basic Client/Server Request/Response Sequence

5 © Anselm Spoerri Dynamic Client/Server Request/Response Sequence $query $result

6 © Anselm Spoerri Dynamic Web 1.JavaScript –Client-side scripting access to elements of HTML document –Perform data handling and web server requests in background 2.PHP –Server-side scripting –Open source, simplicity and built-in links to MySQL database 3.MySQL –Open-source Relational Databases that supports structured queries and is free to use and install on web servers 4.Apache Server –Open source server software that serves up HTML, media files etc PHP handles main work on web server, MySQL manages data, and JavaScript looks after web page presentation. JavaScript can also talk with your PHP code on the web server whenever it needs to update something (either on the server or on the web page).

7 © Anselm Spoerri Key Programming Concepts data types numbers, text, boolean (true, false) variable = container of data array = collection of data organized in a sequence statement = combination of variables, operators and data  group of statements  function = collection of statements to perform specific task perform test: true or false if (test) then for loop: where do we start? when are done? how to continue?

8 © Anselm Spoerri Programming Concepts – Overview Data Types : such as numbers, text, boolean (true, false) ‒ Integer | Boolean | Character | String | Floating-Point ‒ Array: [5, 4, 7] (use FOR loop to examine each array item) Variable : is way to symbolically to refer to data content ‒ scores = [5, 4, 7]; Operators : can be used to perform built-in operations ‒ 5 +5; (where + is addition operator) Statement : combination of variables, operators and data ‒ total = 12 * monthly_average;

9 © Anselm Spoerri Programming Concepts – Overview Function : collection of statements to perform specific task function add_scores (score1, score2) { return (score1 + score2); } total = add_scores (3, 4); Conditional Programming used so that operations are performed only if certain condition is met: ‒ IF test (only do something if certain condition is true) ‒ FOR loop (keep doing something only if certain condition is true) ‒ WHILE loop (keep doing something until certain condition not true anymore) Debugging code is essential part of programming... chasing typos, missing parentheses :)

10 © Anselm Spoerri PHP – Overview http://en.wikipedia.org/wiki/PHP Open-source http://www.php.net : documentation http://www.php.net Server-side scripting –Insert content of one file (or the output of a system call) into another file dynamically –Create images and other files for you, either on the fly or in advance to serve up later. –PHP program responsible for passing back clean file suitable for display in web browser. Simplicity & Flexibility Built-in links to MySQL database.php file extension

11 © Anselm Spoerri PHP – Overview (cont.) $ count = 10 ; Must Place $ in front of all Variables Common Error = Forget Semicolon $username = "Fred Smith"; // quotation marks for string echo $username; // echo makes variable visible in Browser

12 © Anselm Spoerri PHP – Code Construction XHTML tags included inside of PHP code (thus have DOCTYPE declaration and basic XHTML structure) Some programmers open tag at start of document and close it at the end, outputting any HTML directly from PHP commands. Others choose to insert only smallest possible fragments of PHP within these tags wherever dynamic scripting is required, leaving the rest of the document in standard HTML. Hello World. Today is. Latter style may produce faster code, while the former has less complexity having to drop in and out of PHP many times in a single document.

13 © Anselm Spoerri PHP - Variable Naming Rules Starts with $ Variable Naming Rules When creating PHP variables, you must follow these four rules: ‒ Must start with a letter of alphabet or _ (underscore) ‒ Can contain only the characters: a-z, A-Z, 0-9, and _ ‒ May not contain spaces. (e.g., $user_name). ‒ Variable names are case-sensitive. The variable $High_Score is not the same as the variable $high_score. In PHP, & symbol tells parser to pass reference to variable's value, not the value itself. Be careful when passing values by reference. If you need to keep the original values, make copies of your variables and then pass the copies by reference.

14 © Anselm Spoerri PHP - Strings PHP supports two types of strings: "hello" or 'hello' –Literal string (preserve exact contents), use apostrophe: $info = 'Preface variables with a $ like this: $variable'; –Include value of variable (evaluate string): use quotation marks $count = 44; echo "There have been $count presidents of the US"; Escape Character : \ –$text = 'My friend\'s car is a Chevy'; –$text = "My mother always said \"Eat your greens\"."; –Important to use when HTML code and variables used inside echo statement

15 © Anselm Spoerri PHP – Array Operations $team = array('Bill', 'Joe', 'Mike', 'Chris'); // apostrophes echo $team[3]; // Displays the name Chris  array indexes start at zero $twoDim = array(array('a', '', 'c'), array('', 'b', ''),); echo $twoDim[1][1]; count($a); // number of array items Array union: $a + $b Associative Array –$a['firstname'] = "John";

16 © Anselm Spoerri PHP - Operators Operators ++$j or --$j // Increment or Decrement "FirstName". " ". "LastName" // String concatenation Boolean AND: && AND OR: || OR $firstname && $lastname $firstname || $lastname Equality Operator is == Not Equal is != Identity Operator is === (prevents type conversion) Operators precedence rules  use parentheses to control what gets computed first and in which order

17 © Anselm Spoerri PHP – Constants, Global and Function Define Constant define("ROOT_LOCATION", "/usr/local/www/"); –Can not be prefaced with $ sign and need to use define function –Use UPPERCASE global $username; Define Function function function_name ([parameter [,...]]) { // Statements } function squared ($count) { return $count * $count;} Scope of Variable –Local variables are accessible just from part of code where defined: Defined inside of function, only accessible inside of function. Defined outside of function, only accessible outside of function. –Global variables are accessible from all parts of your code. Forgetting Scope of Variable is Common Error.

18 © Anselm Spoerri PHP – IF test if (test) {do1;} else {do2;} test ? doifTRUE : doifFALSE; if (test1) {do1;} elseif (test2) {do2;} else {do3;}

19 © Anselm Spoerri PHP – FOR Loop AND FOREACH Loop for loop for (init variable ; test variable ; increment variable) { do something; } for ($count = 1 ; $count "; } foreach loop used for arrays $paper = array("Copier", "Inkjet", "Laser", "Photo"); $j = 0; foreach ($paper as $item) { echo "$j: $item "; ++$j; }

20 © Anselm Spoerri PHP – Include Code from Other Files include_once "filename"; –Tell PHP to fetch a particular file and load all its contents –To avoid error of trying to define same constant or function multiple times require_once "filename"; –To make sure that file is found

21 © Anselm Spoerri PHP – Questions What tag is used to cause PHP to start interpreting program code? What are the two types of comment tags? Which character must be placed at the end of every PHP statement? Which symbol is used to preface all PHP variables? What can a variable store? What is the difference between $variable = 1 and $variable == 1? Why do you suppose that an underscore is allowed in variable names ($current_user) whereas hyphens are not ($current-user) ? Are variable names case-sensitive? Can you use spaces in variable names? How do you convert one variable type to another (say, a string to a number)? Are the operators && and and interchangeable? Can you redefine a constant? How do you escape a quotation mark? How can you make a variable accessible to all parts of a PHP program? What is the result of combining a string with a number?

22 © Anselm Spoerri SQL – Querying Relational Database SQL = Structured Query Language http://en.wikipedia.org/wiki/SQL Database computer language designed for Managing & Accessing Data in Relational Database Queries –Ask question about data –Receive answer back by returning subset of table data. –Use JOIN, SELECT, WHERE –Need semicolon ; at the end of query –SQL commands and keywords are case-insensitive

23 © Anselm Spoerri MySQL – Overview Open-source http://www.mysql.com/ http://www.mysql.com/ Fast & Powerful Yet Easy-to-use Database –One or more tables that contain your data Database –The overall container for a collection of MySQL data. Table –A subcontainer within a database that stores the actual data. Row –A single record within a table, which may contain several fields. Column –The name of a field within a row. SQL commands and keywords are case-insensitive

24 © Anselm Spoerri MySQL – Overview (cont.) Field –The name of each field or column within a table. Type –The type of data being stored in the field. Null –Whether a field is allowed to contain a value of NULL. Key –MySQL supports keys or indexes, which are quick ways to look up and search for data. The Key heading shows what type of key (if any) has been applied. Default –The default value that will be assigned to the field if no value is specified when a new row is created.

25 © Anselm Spoerri Set Up PHP Testing Server If not already done to access DW via SoftwareAnywhere: login to http://account.comminfo.rutgers.edu to provision credentialshttp://account.comminfo.rutgers.edu Site > New Site Select “Site” Site > Site Name = “PHP Testing Server” Site > Local Site Folder = “PHPfiles” in “My Documents” Select “Servers" Category in Site Dialog Click on + (Add new server) Specify Server Name Select “SFTP" in pull-down “Connect using” menu SFTP Host = “cactuar.scilsnet.rutgers.edu” Root Directory = “/www/whereru.scils.rutgers.edu/htdocs/iti320semesteryear/yourteam” where for example semesteryear = su13 or fa13 Login = “yourNetIDusername” Password = “yourNetIDpassword” Web URL =“http://whereru.rutgers.edu/iti320semesteryear/yourteam” Test Advanced Tab: Select “PHP MySQL” in pull-down Server Model menu Save Make sure “Remote” and “Testing” checkboxes are selected

26 © Anselm Spoerri Testing PHP Page Preview in Browser Update Copy on Testing Server? Select “Yes” Put Dependent Files ? Select “No“ Permissions Folder / Files Permission Automatically set to 770 … you don’t have do anything Folder for Each Team Member Need to update: Root Directory = “…/iti320semesteryear/yourteam/ username ” where for example semesteryear = su13 or fa13 for example: “…/iti320fa13/yourteam/ username ” Web URL =“http://whereru.rutgers.edu/iti320semesteryear/yourteam/ username ” for example: “http://whereru.rutgers.edu/iti320fa13/yourteam/ username ”

27 © Anselm Spoerri Site Definition for PHP Testing Server Local Folder = YOUR files and Upload Your Files to Your Server Folder Local Folder = contains YOUR PHP files Root Directory = “ /iti320fa13/yourteam/ username ” Web URL = http://whereru.rutgers.edu/iti320fa13/yourteam/ username Local Folder = Contains Folder for YOUR files and Upload Your Files to Your Server Folder Local Folder = contains a folder that contains YOUR PHP files and this folder needs to have same name as YOUR folder on the server. Root Directory = “ /iti320fa13/yourteam/” Web URL =“http://whereru.rutgers.edu/iti320fa13/yourteam/  Number of Local Folder Hierarchy Levels needs to match Number of Server Folder Hierarchy Levels If the local folder of your Site Definition contains just your PHP files, then your Site Definition needs to include the name of YOUR folder on the server so that your PHP files get automatically uploaded to YOUR folder on the server. If the local folder of your Site Definition contains a folder that contains your PHP files, then your Site Definition does not need to include the name of YOUR folder on the server so that your PHP files get automatically uploaded to YOUR folder on the server.

28 © Anselm Spoerri MySQL & PHP – Process Steps The process of using MySQL with PHP: 1.Connect to MySQL. 2.Select the database to use. 3.Build a query string. 4.Perform the query. 5.Retrieve the results and output it to a web page. 6.Repeat Steps 3 to 5 until all desired data retrieved. 7.Disconnect from MySQL (usually done automatically)

29 © Anselm Spoerri MySQL & PHP – login.php for your database Create login.php filemake sure to place in personal folder <?php // login.php make sure to place in personal folder $db_hostname = 'localhost'; $db_database = 'whereru'; $db_username = 'yourMySQLusername'; $db_password = 'yourMySQLpassword'; ?> Upload to Server, View Source in Browser Now that you have login.php file saved, you can include it in any PHP files that will need to access the database by using the require_once statement.

30 © Anselm Spoerri MySQL & PHP – Connect to Database – Step 1 <?php // connectDatabase.php require_once 'login.php'; $db_server = mysql_connect($db_hostname, $db_username, $db_password); if ( ! $db_server) die ("Unable to connect to MySQL: ". mysql_error()); mysql_select_db($db_database) or die("Unable to select database: ". mysql_error()); ?>

31 © Anselm Spoerri MySQL & PHP – Query Database – Step 2 Add to connectDatabase.php $db_table = 'whereru_gigapan'; // description in Sakai Resources $query = " SELECT * FROM $db_table"; $result = mysql_query ($query); if (!$result) die ("Database access failed: ". mysql_error());

32 © Anselm Spoerri MySQL & PHP – Display Query Result – Step 3 Add to connectDatabase.php $rows = mysql_num_rows($result); for ($j = 0 ; $j < $rows ; ++$j){ echo 'ID: '. mysql_result ( $result,$j,'id' ). ' '; echo 'Title: '. mysql_result($result,$j,'title'). ' '; echo 'Campus: '. mysql_result($result,$j,'campus'). ' '; } This code is inefficient and slow, because $rows * 3 calls are made to the function mysql_result in order to retrieve all the data.

33 © Anselm Spoerri MySQL & PHP – Display Query Result (improved) – Step 4 $id = 0; // assign index needed to access field in $row array … see data info in Sakai $title = 2; $campus = 3; for ($j = 0 ; $j < $rows ; ++$j) { $row = mysql_fetch_row ($result); // returns array echo 'ID: '. $row[ $id ]. ' '; echo 'Title: '. $row[ $title ]. ' '; echo 'Campus: '. $row[ $campus ]. ' '. ' '; }

34 © Anselm Spoerri MySQL & PHP – Refined Query $db_table = 'whereru_gigapan'; $query = "SELECT * FROM $db_table WHERE campus='Newark'"; $result = mysql_query($query); if (!$result) die ("Database access failed: ". mysql_error()); $rows = mysql_num_rows($result); $id = 0; // assign index needed to access field in $row array $title = 2; $campus = 3; for ($j = 0 ; $j '; echo 'Title: '. $row[$title]. ' '; echo 'Campus: '. $row[$campus]. ' '. ' '; }


Download ppt "© Anselm Spoerri Web Design Information Visualization Course Prof. Anselm Spoerri"

Similar presentations


Ads by Google