cs146 database systems &team projects spring 2009
TRANSCRIPT
CS146 Database Systems &Team
ProjectsSpring 2009
• Lab instructor: – Darby Thompson
• Office Hours: By Appt
• Lab page will be linked from the course page:– http://www.seas.gwu.edu/~bhagiweb/cs146/
Introduction
What do I expect from students in the lab
• WID Writing assignments - go to the WID TA if you have questions
• Programming assignments– Submit using Blackboard– Due at 11.59pm– Don’t be late!
What do I expect from students in the lab
• Grading policy for programming assignments– Queries with syntactic errors will not be
considered. – Run your queries before sending them– If the query works, it is likely you will get all
the points for it
What do I expect from students in the lab
• I will explain everything in the lab. Be there & don’t fall asleep!
• You are expected to play with the tools on your own and learn at least enough to do the project.
• Email me to set up appointments - I’ll probably need more than 1 hour notice!
• Start early…
What do I expect from students in the lab
• Teamwork! You will be working on long term team projects.– Communicate with your teammates and let
them know if you’re having problems– Communicate with me and let me know if
you’re having problems
Lab Outline
• What we will do– SQL, MySQL, etc…– In-class and homework Programming
Assignments– Team Project– PHP, JDBC– Ethics debates/discussions (ideas?)– Lectures/lab swap
Databases
• What do you already know about databases? Keywords? Tools/Applications?
• Any idea what SQL stands for?
Databases
• Standard Query Language
Apply for a mysql account
• Send an email NOW to [email protected] and request a MySQL account. Mention that you are taking CS146
• You will need the account for next lab (in class exercises)
Php
• Official site: www.php.net
• PhP manual: http://www.php.net/manual/en/index.php
• Useful package (Apache, MySql,PhP): http://www.easyphp.org/
Where ?
• Ssh into cobweb.seas.gwu.edu and put your php files
• Access them via http://www.student.seas.gwu.edu/~yourusername/filename.php
How ?
• You can use a basic text editing program to write php files, and CyberDuck to move files onto cobweb
• Additionally can use X11 Terminal to copy a file from your computer to the server using the following command:– scp filename.php
[email protected]:public_html/
What is PhP
• “PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML” (www.php.net)
• Server scripting language (Javascript is a client side scripting language)
• If you know C, you will learn PhP in no time.
Hello World!• Index.php:
<html> <head> <title>PHP Test</title> </head> <body> <?php echo '<p>Hello World</p>'; ?></body></html>
• Output<html>: <head> <title>PHP Test</title> </head> <body> <p>Hello World</p> </body>
</html>
Basics
• Use echo for printing
• Variables start with $ sign
• Do not have to explicitly assign them a type (like int, array, etc.)
• . (dot) concatenates 2 strings. Ex $a=”Hello”;$b=”World”; echo $a.” ”.$b; displays ”Hello World”
Accesing databases from PhP<html> <head> <title>PHP Test</title> </head> <body><?php$link=mysql_connect("localhost",“username",“password") or die("Error connecting to the database server:".mysql_error()."<br>\n");mysql_select_db(“username") or
die("Error selecting the database:".mysql_error()."<br>\n");?>
<?php$sql = "SELECT name, id FROM employees;";
$result=mysql_query($sql);while(list($name,$id) = mysql_fetch_array($result)){
echo "<p>".$name." ".$id;}?></body></html>
Arrays
• A mapping between keys and values. Example<?php
$arr = array("foo" => "bar", 12 => true);echo $arr["foo"]; // barecho $arr[12]; // 1
foreach ($arr as $key => $value) {
echo “key=”.$key;echo “ value=”,$value.”<BR>”;
}
?>
Get and Post
• $_GET[’variablename’] – the variable is appended to the http address, and is transmited in the same stream. Ex: http://www.somesite.com/index.php?a=1&b=’x’. Easy to bookmark
• $_POST[’variablename’] – a new stream is created, and all the post variables are transmited in this stresm. The http address is clean (no bookmarks)
Get variables from formsgetName.html<HTML><BODY><form action="action.php"
method="post"> <p>Your name: <input type="text"
name="name" /></p> <p>Your age: <input type="text"
name="age" /></p> <p><input type="submit"
value="Submit"/></p> </form> </BODY></HTML>
Action.php<HTML><BODY><?php echo "Your name is ".$_POST["name"]." and you are ".$_POST["age"]." years old";?></BODY></HTML>
Some usefull global variables
• $_SESSION -An associative array containing session variables available to the current script.
• $_SERVER[’PHP_SELF’]- The filename of the currently executing script, relative to the document root. For instance, $_SERVER['PHP_SELF'] in a script at the address http://example.com/test.php/foo.bar would be /test.php/foo.bar.
• $_SERVER['SERVER_NAME']- The name of the server host under which the current script is executing. If the script is running on a virtual host, this will be the value defined for that virtual host.
• __LINE__The current line number of the file.
• __FILE__The full path and filename of the file. If used inside an include, the name of the included file is returned.
Session
• HTTP is stateless
• Simulates a statefull connection. Maintains records on the server side until the browser is closed.
• session_start();
• $_SESSION[‘foo’]=‘bar’;
• $_SESSION[‘a’][‘b’]=‘c’;
• Allows to build a ”shoping cart”;
Includes• header.php• <html>• <head>• <title>PHP Test</title>• </head>• <body>• <TABLE width="800" cellpadding="4" cellspacing="0" align="center" border="0">• <TR>• <TD width='100%'>
• footer.php• </TD>• </TR>• </TABLE>• </body>• </html>
• index.php• <?php• include ”header.php”;• echo ”hello world”;• include ”footer.php”• ?>