<bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="FICTION"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore> XML CSCI 305 Introduction to Database Systems PHP Professor Brian R. King Bucknell University – Computer Science Dept. Objective • This is designed to teach you some bare essentials about PHP, and using it to connect to your DB PHP Basics • PHP – Hypertext Preprocessor • Server-side scripting language • Scripts reside between reserved PHP tags – Programmer can embed PHP in the HTML pages – <?php … ?> • Structurally similar to C/C++/Java syntax PHP Basics • Comments: – // –# – /* */ • Variables: – All variables begin with $ – Case sensitive • Type: – PHP is loosely typed. You do not need to declare variables before you add a value to it. PHP determines the type, depending on its initial value PHP echo command • echo is used to output the parameters passed to it • Typical usage – send data to the client's webbrowser Echo example <?php $foo = 25; $bar = “Hello”; echo echo echo echo echo ?> $bar; $foo,$bar; “5x5=”,$foo; “5x5=$foo”; ‘5x5=$foo’; // Numerical variable // String variable // // // // // Outputs Outputs Outputs Outputs Outputs Hello 25Hello 5x5=25 5x5=25 5x5=$foo • Notice how echo ‘5x5=$foo’ outputs $foo rather than replacing it with 25 • Strings in single quotes (‘ ’) are not interpreted or evaluated by PHP • This is true for both variables and character escape-sequences (such as “\n” or “\\”) Arithmetic Operations <?php $a=15; $b=30; $total=$a+$b; echo $total; echo “<p><h1>$total</h1>”; // total is 45 ?> • • • • $a - $b $a * $b $a / $b $a += 5 // subtraction // multiplication // division // $a = $a+5 Also works for *= and /= Concatenation • Use a period to join strings into one. <?php $string1=“Hello”; $string2=“PHP”; $string3=$string1 . “ ” . $string2; echo $string3; ?> Hello PHP Escaping the Character • If the string has a set of double quotation marks that must remain visible, use the \ [backslash] before the quotation marks to ignore and display them. <?php $heading="\"Computer Science\""; echo $heading; ?> “Computer Science” Control Structures • if / else if / else • while / do..while / for – foreach exists, but syntax is different • switch / case / break / default • boolean expressions • All of the above are formed just like Java (same comparison and logical operators) Arrays • Three types: – Numeric array – An array with a numeric index – Associative array – Each ID key is associated with a value – Multidimensional array • Dealing with arrays is easy. However, the library of functions for arrays is large. Functions • Functions MUST be defined before then can be called • Function headers are of the format function functionName($arg_1, $arg_2, …, $arg_n) – Note that no return type is specified • Unlike variables, function names are not case sensitive (foo(…) == Foo(…) == FoO(…)) Functions example <?php // This is a function function foo($arg_1, $arg_2) { $arg_2 = $arg_1 * $arg_2; return $arg_2; } $result_1 = foo(12, 3); echo $result_1; echo foo(12, 3); ?> // Store the function // Outputs 36 // Outputs 36 Include Files • include "opendb.php"; • include "closedb.php"; • The code in files will be inserted into current code. – Nice for modularizing and reusability PHP Forms and User Input • PHP $_GET and $_POST variables are used to retrieve information from forms, like user input • NOTE: Any form element in an HTML page will automatically be available to your PHP scripts Example form welcome.php form.php <?php if ($_POST["submit"]) echo "<h2>You clicked Submit!</h2>"; else if ($_POST["cancel"]) echo "<h2>You clicked Cancel!</h2>"; ?> <form action="form.php" method="post"> <input type="submit" name="submit" value="Submit"> <input type="submit" name="cancel" value="Cancel"> </form> What you see on your browser after clicking Submit MySQL connection • Best way is to just show by example… connect.php <?php $user = "brk009"; $password = "……"; $database = "brk009_WWIIShipsDB"; $conn = mysql_connect("db.eg.bucknell.edu",$user,$password); if (!$conn) die("Cound not connect to database"); mysql_select_db($database) or die("Unable to select database"); $result = mysql_query("SHOW TABLES"); if (!$result) die("Query to show tables failed"); connect.php (cont.) $num_row = mysql_num_rows($result); echo "<h1>Choose one table:</h1>"; echo "<form action=\"showtable.php\" method=\"POST\">"; echo "<select name=\"table\" size=\"1\" Font size=\"2\">"; for($i = 0; $i < $num_row; $i++) { $tablename = mysql_fetch_row($result); echo "<option value = \"{$tablename[0]}\" >{$tablename[0]}</option>"; } echo "</select>"; echo "<div><input type=\"submit\" value=\"submit\"></div>"; echo "</form>"; mysql_free_result($result); mysql_close($conn); ?> showtable.php <?php $user = "brk009"; $password = "……"; $database = "brk009_WWIIShipsDB"; $table = $_POST["table"]; $conn = mysql_connect("db.eg.bucknell.edu",$user,$password); if (!$conn) die("Cound not connect to database"); mysql_select_db($database) or die("Unable to select database"); $result = mysql_query("SELECT * FROM {$table}"); if (!$result) die("Query to show tuples from table failed!" . mysql_error()); showtable.php (cont.) $fields_num = mysql_num_fields($result); echo "<h1>Table: {$table}</h1>"; echo "<table border='1'><tr>"; // Print headers for($i = 0; $i < $fields_num; $i++) { $field = mysql_fetch_field($result); echo "<th>{$field->name}</th>"; } echo "</tr>\n"; // Print data while($row = mysql_fetch_row($result)) { echo "<tr>"; foreach($row as $cell) echo "<td>$cell</td>"; echo "</tr>\n"; } mysql_free_result($result); mysql_close($conn); ?>