CSCI 204 Introduction to Computer Science II

advertisement
<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);
?>
Download