From 4363a905c85275298fcfe55d53fad3d3fc00dac5 Mon Sep 17 00:00:00 2001 From: danmcquillan <dan@internetartizans.co.uk> Date: Thu, 21 Apr 2016 11:19:08 +0100 Subject: [PATCH] update for week 13 --- week-13/README.txt | 29 +++ week-13/admin/index.php | 70 +++++++ week-13/admin/views/404.php | 10 + week-13/admin/views/add-record.php | 175 ++++++++++++++++ week-13/admin/views/artist.php | 68 ++++++ week-13/admin/views/home.php | 10 + week-13/admin/views/login.php | 51 +++++ week-13/admin/views/logout.php | 7 + week-13/admin/views/navigation.html | 10 + week-13/admin/views/order.php | 67 ++++++ week-13/admin/views/orders.php | 40 ++++ week-13/admin/views/record.php | 43 ++++ week-13/admin/views/search.php | 90 ++++++++ week-13/includes/db_connect.php | 18 ++ week-13/includes/functions.php | 60 ++++++ week-13/index.php | 65 ++++++ week-13/sql/dummy_data.sql | 67 ++++++ week-13/sql/practice_queries.sql | 9 + week-13/sql/record-store.sql | 71 +++++++ week-13/sql/recordstore-dump.sql | 196 ++++++++++++++++++ week-13/sql/recordstore-dump2.sql | 196 ++++++++++++++++++ week-13/sql/user-table.sql | 25 +++ week-13/templates/footer.html | 2 + week-13/templates/header.html | 7 + week-13/templates/navigation.html | 7 + week-13/uploads/2009-a32-08-05-adorno-b.jpg | Bin 0 -> 35380 bytes week-13/uploads/avatar 1.jpg | Bin 0 -> 13273 bytes week-13/uploads/je-participe.gif | Bin 0 -> 16732 bytes week-13/uploads/man-ray-iron-A.gif | Bin 0 -> 5401 bytes week-13/uploads/think of this as a window.jpg | Bin 0 -> 68496 bytes week-13/views/404.php | 10 + week-13/views/add-record-insecure.php | 100 +++++++++ week-13/views/add-record.php | 174 ++++++++++++++++ week-13/views/artist.php | 68 ++++++ week-13/views/home.php | 10 + week-13/views/order.php | 67 ++++++ week-13/views/orders.php | 40 ++++ week-13/views/record.php | 43 ++++ week-13/views/search.php | 131 ++++++++++++ 39 files changed, 2036 insertions(+) create mode 100644 week-13/README.txt create mode 100644 week-13/admin/index.php create mode 100644 week-13/admin/views/404.php create mode 100644 week-13/admin/views/add-record.php create mode 100644 week-13/admin/views/artist.php create mode 100644 week-13/admin/views/home.php create mode 100644 week-13/admin/views/login.php create mode 100644 week-13/admin/views/logout.php create mode 100644 week-13/admin/views/navigation.html create mode 100644 week-13/admin/views/order.php create mode 100644 week-13/admin/views/orders.php create mode 100644 week-13/admin/views/record.php create mode 100644 week-13/admin/views/search.php create mode 100644 week-13/includes/db_connect.php create mode 100644 week-13/includes/functions.php create mode 100644 week-13/index.php create mode 100644 week-13/sql/dummy_data.sql create mode 100644 week-13/sql/practice_queries.sql create mode 100644 week-13/sql/record-store.sql create mode 100644 week-13/sql/recordstore-dump.sql create mode 100644 week-13/sql/recordstore-dump2.sql create mode 100644 week-13/sql/user-table.sql create mode 100644 week-13/templates/footer.html create mode 100644 week-13/templates/header.html create mode 100644 week-13/templates/navigation.html create mode 100644 week-13/uploads/2009-a32-08-05-adorno-b.jpg create mode 100644 week-13/uploads/avatar 1.jpg create mode 100644 week-13/uploads/je-participe.gif create mode 100644 week-13/uploads/man-ray-iron-A.gif create mode 100644 week-13/uploads/think of this as a window.jpg create mode 100644 week-13/views/404.php create mode 100644 week-13/views/add-record-insecure.php create mode 100644 week-13/views/add-record.php create mode 100644 week-13/views/artist.php create mode 100644 week-13/views/home.php create mode 100644 week-13/views/order.php create mode 100644 week-13/views/orders.php create mode 100644 week-13/views/record.php create mode 100644 week-13/views/search.php diff --git a/week-13/README.txt b/week-13/README.txt new file mode 100644 index 0000000..3ec4f7e --- /dev/null +++ b/week-13/README.txt @@ -0,0 +1,29 @@ +********************************* +* RECORD STORE APPLICATION * +********************************* + +## this recordstore has been hacked for term 2 + +Description +----------- +This is a demo record store application. You can use it to help you complete lab 8. It is You can also read this README file to find out the sorts of things that should be included in a README file! + +Author & Contact +---------------- +Sorrel Harriet s.harriet@gold.ac.uk + +Installation Instructions +------------------------- ++ Check you have a LAMP stack installed with PHP>5 and MySQL>5 ++ Upload the application to your web root folder. ++ Run the record-store.sql file on your database. ++ Run the dummy_data.sql file to insert some data. + +Configuration Instructions +-------------------------- +Modify the includes/db_connect.php script with your MySQL database credentials. + +Live Demo +--------- +A demo version of this app is deployed at the following URL: +http://doc.gold.ac.uk/~sharr003/data-network-web/lab-exercises/week-8/record-store-app/ diff --git a/week-13/admin/index.php b/week-13/admin/index.php new file mode 100644 index 0000000..4b5707c --- /dev/null +++ b/week-13/admin/index.php @@ -0,0 +1,70 @@ +<?php + +// connect to the database +require('../includes/db_connect.php'); +require('../includes/functions.php'); + +session_start(); +if (!is_logged_in()) { + header('Location: http://localhost/term2labs-dan/week-13/admin/views/login.php'); +} + +// define a function to sanitise user input (this would ideally be in includes folder) +function clean_input($data) { + $data = trim($data); // strips unnecessary characters from beginning/end + $data = stripslashes($data); // remove backslashes + $data = htmlspecialchars($data); // replace special characters with HTML entities + return $data; +} + +// include the header HTML +include('../templates/header.html'); + +// include the navigation HTML +include('views/navigation.html'); + +// get the page id from the URL +// if no parameter detected... +if (!isset($_GET['page'])) { + $id = 'home'; // display home page +} else { + $id = $_GET['page']; // else requested page +} + +// use switch to determine which view to serve based on $id +switch ($id) { +case 'home' : + include 'views/home.php'; + break; +case 'record' : + include 'views/record.php'; + break; +case 'artist' : + include 'views/artist.php'; + break; +case 'orders' : + include 'views/orders.php'; + break; +case 'order' : + include 'views/order.php'; + break; +case 'add-record' : + include 'views/add-record.php'; + break; +case 'search' : + include 'views/search.php'; + break; +case 'logout' : + include 'views/logout.php'; + break; +default : + include 'views/404.php'; +} + +// close the connection to the database +mysqli_close($link); + +// include the footer HTML +include('../templates/footer.html'); + +?> diff --git a/week-13/admin/views/404.php b/week-13/admin/views/404.php new file mode 100644 index 0000000..7ae2fe7 --- /dev/null +++ b/week-13/admin/views/404.php @@ -0,0 +1,10 @@ +<?php + +// create variable for content HTML +$content = "<h1>Page not found</h1>"; +$content .= "<p>Sorry, the page you requested could not be found.</p>"; + +// output the content HTML +echo $content; + +?> diff --git a/week-13/admin/views/add-record.php b/week-13/admin/views/add-record.php new file mode 100644 index 0000000..8ba12cf --- /dev/null +++ b/week-13/admin/views/add-record.php @@ -0,0 +1,175 @@ +<?php + +$content = "<h1>Add a record</h1>"; + +// define a variable with path to the script which will process form +// -> $_SERVER["PHP_SELF"] is a path to the current script (index.php) +// -> htmlspecialchars() is used to replace special characters with HTML entities */ +$action = htmlspecialchars($_SERVER["PHP_SELF"]."?page=add-record"); + +// fetch the artists so that we have access to their names and IDs +$sql = "SELECT id, first_name, last_name + FROM artist + ORDER BY last_name"; + +$result = mysqli_query($link, $sql); + +// check query returned a result +if ($result === false) { + echo mysqli_error($link); +} else { + $options = ""; + // create an option for each artist + while ($row = mysqli_fetch_assoc($result)) { + $options .= "<option value='".$row['id']."'>"; + $options .= $row['first_name']." ".$row['last_name']; + $options .= "</option>"; + } +} + +// define the form HTML (would ideally be in a template) +$form_html = "<form action='".$action."' enctype='multipart/form-data' method='POST'> +<input type='hidden' name='MAX_FILE_SIZE' value='1000000' /> + <fieldset> + <label for='ean'>EAN (required):</label> + <input type='text' name='ean'/> + </fieldset> + <fieldset> + <label for='title'>Title:</label> + <input type='text' name='title' /> + </fieldset> + <fieldset> + <label for='artist_id'>Artist:</label> + <select name='artist_id'> + + ".$options." + <option value='NULL'>Not listed</option> + </select> + </fieldset> + <fieldset> + <label for='genre'>Genre</label> + <input type='text' name='genre' /> + </fieldset> + <fieldset> + <label for='year'>Year:</label> + <input type='text' name='year' size='5' placeholder='YYYY' /> + </fieldset> + <fieldset> + <label for='price'>Price (£):</label> + <input type='text' name='price' placeholder='00.00' /> + </fieldset> + <fieldset> + <label for='price'>Stock:</label> + <input type='text' name='stock' placeholder='0' /> + </fieldset> +<label>image <input type='file' id='image' name='image' /></label><br /> + <button type='submit'>Submit</button> + </form>"; + +// append form HTML to content string +$content .= $form_html; + +// ------- START form processing code... ------- + + +// define variables and set to empty values +$title = $artist_id = $price = $year = $genre = $stock = ""; + +// check if there was a POST request +if ($_SERVER["REQUEST_METHOD"] == "POST") { + // validate the form data + $ean = mysqli_real_escape_string($link, clean_input($_POST["ean"])); + $title = mysqli_real_escape_string($link, clean_input($_POST["title"])); + $artist_id = mysqli_real_escape_string($link, clean_input($_POST["artist_id"])); + $genre = mysqli_real_escape_string($link, clean_input($_POST["genre"])); + $year = mysqli_real_escape_string($link, clean_input($_POST["year"])); + $price = mysqli_real_escape_string($link, clean_input($_POST["price"])); + $stock = mysqli_real_escape_string($link, clean_input($_POST["stock"])); + + // handle the image upload + $uploadOk = 1; + + $target_dir = "../uploads/"; + $image_dir = "uploads/"; + + // Check if image file is a actual image or fake image + $check = getimagesize($_FILES["image"]["tmp_name"]); + if($check !== false) { + // echo "File is an image - " . $check["mime"] . "."; + $uploadOk = 1; + } else { + echo "File is not an image."; + $uploadOk = 0; + } + + // Check file size + if ($_FILES["image"]["size"] > 1000000) { + echo "Sorry, your file is too large."; + $uploadOk = 0; + } + + $target_file = $target_dir . basename($_FILES["image"]["name"]); + $image = $image_dir . basename($_FILES["image"]["name"]); + + // Check if file already exists + if (file_exists($target_file)) { + echo "Sorry, file already exists."; + $uploadOk = 0; + } + + $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); + + // Allow certain file formats + if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" + && $imageFileType != "gif" ) { + echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; + $uploadOk = 0; + } + + // Check if $uploadOk is set to 0 by an error + if ($uploadOk == 0) { + echo "Sorry, your file was not uploaded."; + + // if everything is ok, try to upload file + } else { + if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) { + echo "The file ". basename( $_FILES["image"]["name"]). " has been uploaded."; + } else { + echo "Sorry, there was an error uploading your file."; + } + } + // end of image upload + + // turn autocommit off + mysqli_autocommit($link, FALSE); + + // start a transaction + mysqli_query($link, 'START TRANSACTION'); + + // define the insertion query to add a new record in record table + $query1 = sprintf("INSERT INTO record (ean, title, artist_id, genre, year, price, image) + VALUES ('%s', '%s', %d, '%s', %d, %f, '%s')", $ean, $title, $artist_id, $genre, $year, $price, $image); + + // define the insertion query to add a new record in inventory table + $query2 = sprintf("INSERT INTO inventory (stock, record_ean) + VALUES (%d, '%s')", $stock, $ean); + + // check if either of the queries failed (returned false) + if (!mysqli_query($link, $query1) or !mysqli_query($link, $query2)) { + echo mysqli_error($link); + mysqli_rollback($link); // if so, rollback transaction + } else { + mysqli_commit($link); // else, commit transaction + $content .= "Record successfully added to database."; + } + + + + } + + // ------- END form processing code... ------- + + // output the html + echo($content); + +?> diff --git a/week-13/admin/views/artist.php b/week-13/admin/views/artist.php new file mode 100644 index 0000000..ea371d7 --- /dev/null +++ b/week-13/admin/views/artist.php @@ -0,0 +1,68 @@ +<?php + +// check if id parameter was not set in query string +if (!isset($_GET['id'])) { + + // define $content with suitable message + $content = "<h1>I don't know which artist you're looking for...</h1>"; + +} else { // id was set, so carry on... + + // define $artist_id variable and assign value of id parameter + $artist_id = $_GET['id']; + + // fetch record titles for artist with id matching $artist_id + $sql = "SELECT r.title, r.year, r.price, a.first_name, a.last_name + FROM record r + INNER JOIN artist a + ON r.artist_id=a.id + WHERE a.id=".$artist_id." + ORDER BY year ASC"; + + $result = mysqli_query($link, $sql); + + // check query returned a result + if ($result === false) { + echo mysqli_error($link); + } else { + + // define a row counter + $i = 0; + + // fetch associative array + while ($row = mysqli_fetch_assoc($result)) { + + // do this if we are on first row + if ($i == 0) { + + // initialise $content string, assigning it a page header + $content = "<h1>".$row['first_name']." ".$row['last_name']." Records</h1>"; + // append $content string with table definition + $content .= "<table border='1'><tbody>"; + + } + + // append table rows to $content string + $content .= "<tr>"; + $content .= "<td>".$row['title']."</td>"; + $content .= "<td>".$row['year']."</td>"; + $content .= "<td>£".$row['price']."</td>"; + $content .= "</tr>"; + + // increment the row counter + $i++; + + } + + // append $content string with closing table tags + $content .= "</tbody></table>"; + + // free result set + mysqli_free_result($result); + } +} + +// output the content HTML +echo $content; + +?> diff --git a/week-13/admin/views/home.php b/week-13/admin/views/home.php new file mode 100644 index 0000000..dc1ed44 --- /dev/null +++ b/week-13/admin/views/home.php @@ -0,0 +1,10 @@ +<?php + +// create variable for content HTML +$content = "<h1>Welcome to Goldsmith's Record Store</h1>"; +$content .= "<p>Follow the links above to browse the store.</p>"; + +// output the content HTML +echo $content; + +?> diff --git a/week-13/admin/views/login.php b/week-13/admin/views/login.php new file mode 100644 index 0000000..f1cd3e3 --- /dev/null +++ b/week-13/admin/views/login.php @@ -0,0 +1,51 @@ +<? +session_start(); +require_once '../../includes/db_connect.php'; +function printform(){ + print "<form action='login.php' method='POST'> + <p><label>username <input type='text' name='username'></label><p> + <p><label>password <input type='password' name='password'></label><p> + <p><input type='submit' name='submit' value='login'><p>"; +} + +$message=""; + +if ($_SERVER['REQUEST_METHOD'] == 'POST'){ + + $username = mysqli_real_escape_string($link, trim(strip_tags($_POST['username']))); + $password = mysqli_real_escape_string($link, trim(strip_tags($_POST['password']))); + + + if ((!empty($username)) && (!empty($password))){ + + $q = "select * from users where name ='$username' and password = SHA('$password')"; + $r = mysqli_query($link, $q); + if (mysqli_affected_rows($link) == 1){ + $row = mysqli_fetch_array($r); + $_SESSION['username'] = $username; + $_SESSION['user_id'] = $row['user_id']; + header('Location: http://localhost/term2labs-dan/week-13/admin/index.php'); + } else { + $message = $message."Login unsuccessful: please try again </br>"; + } + } + if (empty($username)) { + $message = $message."Please include a username </br>"; + } + if (empty($password)) { + $message = $message."Please include a password </br>"; + } + +} + +require_once '../../templates/header.html'; + +//if (!empty($message)){ + print "<p class='error'>".$message."</p>"; +//} +printform(); + + + +require_once '../../templates/footer.html'; +?> diff --git a/week-13/admin/views/logout.php b/week-13/admin/views/logout.php new file mode 100644 index 0000000..d606c37 --- /dev/null +++ b/week-13/admin/views/logout.php @@ -0,0 +1,7 @@ +<? +session_start(); + +session_destroy(); +header('Location: http://localhost/term2labs-dan/week-13/index.php'); +?> + diff --git a/week-13/admin/views/navigation.html b/week-13/admin/views/navigation.html new file mode 100644 index 0000000..2990306 --- /dev/null +++ b/week-13/admin/views/navigation.html @@ -0,0 +1,10 @@ +<nav> + <ul> + <li><a href="?page=home" title="home">Home</a></li> + <li><a href="?page=record" title="records">Records</a></li> + <li><a href="?page=search" title="search">Search</a></li> + <li><a href="?page=orders" title="orders">Orders</a></li> + <li><a href="?page=add-record" title="add record">Add record</a></li> + <li><a href="?page=logout" title="logout">Logout</a></li> + </ul> +</nav> diff --git a/week-13/admin/views/order.php b/week-13/admin/views/order.php new file mode 100644 index 0000000..0f81c63 --- /dev/null +++ b/week-13/admin/views/order.php @@ -0,0 +1,67 @@ +<?php + +// check the order_id parameter has been set in the URL +if (isset($_GET['order_id'])) +{ + $order_id = $_GET['order_id']; +} else { + $order_id = -1; // if not, set to an implausible value +} + +// fetch order details associated with current order id +$sql = "SELECT r.ean, r.title, ol.quantity, ol.transaction_id, r.price + FROM record r + INNER JOIN orderline ol + ON ol.record_ean=r.ean + WHERE ol.transaction_id=".$order_id; +$result = mysqli_query($link, $sql); + +// check query returned a result +if ($result === false) { + echo mysqli_error($link); +} else { + + // Find the number of rows returned + $num_rows = mysqli_num_rows($result); + + // Check it's not 0 + if ($num_rows == 0) { + $content = "<h1>Order not found</h1>"; + } else { + // create variable for content HTML + $content = "<h1>Order ".$order_id."</h1>"; + $content .= "<table border='1'>"; + $content .= "<thead><tr> + <th>EAN</th> + <th>Title</th> + <th>Quantity</th> + <th>Price</th> + <th>Total</th> + </tr></thead>"; + $content .= "<tbody>"; + // initialise total order price to 0 + $total = 0.00; + // fetch associative array + while ($row = mysqli_fetch_assoc($result)) { + $subtotal = $row['quantity'] * $row['price']; + $total = $total + $subtotal; + $content .= "<tr>"; + $content .= "<td>".$row['ean']."</td>"; + $content .= "<td>".$row['title']."</td>"; + $content .= "<td>".$row['quantity']."</td>"; + $content .= "<td>£".$row['price']."</td>"; + $content .= "<td>£".$subtotal."</td>"; + $content .= "</tr>"; + } + $content .= "<tr><td colspan=4><b>TOTAL</b><td><b>£".$total."</b></td></tr>"; + $content .= "</tbody></table>"; + // free result set + mysqli_free_result($result); + + } +} + +// output the content HTML +echo $content; + +?> diff --git a/week-13/admin/views/orders.php b/week-13/admin/views/orders.php new file mode 100644 index 0000000..d122891 --- /dev/null +++ b/week-13/admin/views/orders.php @@ -0,0 +1,40 @@ +<?php + +// initialise string variable for content HTML +$content = "<h1>Orders</h1>"; + +// fetch all transactions (orders) and group by customer id +$sql = "SELECT id, customer_id FROM transaction + ORDER BY customer_id"; +$result = mysqli_query($link, $sql); + +// check query returned a result +if ($result === false) +{ + echo mysqli_error($link); +} else { + $num_rows = mysqli_num_rows($result); + if ($num_rows > 0) + { + $content .= "<table border='1'>"; + $content .= "<thead><tr><th>Order ID</th><th>Customer ID</th></tr></thead>"; + $content .= "<tbody>"; + // fetch each row in result set as an associative array + while ($row = mysqli_fetch_assoc($result)) { + $content .= "<tr>"; + $content .= "<td><a href=\"?page=order&order_id=".$row['id']."\">".$row['id']."</a></td>"; + $content .= "<td>".$row['customer_id']."</td>"; + $content .= "</tr>"; + } + $content .= "</tbody></table>"; + } else { + $content .= "<p>There are no orders to display.</p>"; + } + // free result set + mysqli_free_result($result); +} + +// output the content HTML +echo $content; + +?> diff --git a/week-13/admin/views/record.php b/week-13/admin/views/record.php new file mode 100644 index 0000000..cdeaff2 --- /dev/null +++ b/week-13/admin/views/record.php @@ -0,0 +1,43 @@ +<?php + +// create variable for content HTML +$content = "<h1>Records</h1>"; +$content .= "<p>You are now viewing all records in the database.</p>"; + +// fetch records as a result set +$sql = "SELECT r.title, r.ean, a.first_name, a.last_name, r.genre, r.price, r.image, i.stock, a.id + FROM record r + INNER JOIN artist a + ON r.artist_id=a.id + INNER JOIN inventory i + ON r.ean=i.record_ean + ORDER BY r.title, r.price DESC"; +$result = mysqli_query($link, $sql); + +// check query returned a result +if ($result === false) { + echo mysqli_error($link); +} else { + $content .= "<table border='1'>"; + $content .= "<thead><tr><th>Title</th><th>Artist</th><th>Genre</th><th>Price</th><th>Stock</th></tr></thead>"; + $content .= "<tbody>"; + // fetch associative array + while ($row = mysqli_fetch_assoc($result)) { + $content .= "<tr>"; + $content .= "<td>".$row['title']."</td>"; + $content .= "<td><a href='?page=artist&id=".$row['id']."'>".$row['first_name']." ".$row['last_name']."</a></td>"; + $content .= "<td>".$row['genre']."</td>"; + $content .= "<td>".$row['price']."</td>"; + $content .= "<td>".$row['stock']."</td>"; + $content .= "<td><img src='../".$row['image']."' style='height: 100px;' /></td>"; + $content .= "</tr>"; + } + $content .= "</tbody></table>"; + // free result set + mysqli_free_result($result); +} + +// output the content HTML +echo $content; + +?> diff --git a/week-13/admin/views/search.php b/week-13/admin/views/search.php new file mode 100644 index 0000000..942e783 --- /dev/null +++ b/week-13/admin/views/search.php @@ -0,0 +1,90 @@ +<? +$content = "<h1>Search</h1>"; + +// define a variable with path to this script which will process form +$action = htmlspecialchars($_SERVER["PHP_SELF"]."?page=search"); + +// define the search form +$form_html = "<form method='post' action='". $action ."'> + <label for='usersearch'>search the record store</label><br /> + <input type='text' id='usersearch' name='usersearch' /><br /> + <input type='submit' name='submit' value='Submit' /> + </form>"; + +// append form HTML to content string +$content .= $form_html; + +// ------- START form processing code... ------- + +// check if there was a POST request +if ($_SERVER["REQUEST_METHOD"] == "POST") { + +// $sort = clean_input($_GET['sort']); + $user_search = clean_input($_POST['usersearch']); + $clean_search = str_replace(',',' ',$user_search); + $search_words = explode(' ',$clean_search); + $final_search_words = array(); + if (count($search_words > 0)){ + foreach ($search_words as $word) { + if (!empty($word)) { + $final_search_words[] = $word; + } + } + } + foreach ($final_search_words as $word) { + $where_list[] = "r.title like '%$word%'"; + } + $where_clause = implode(' OR ', $where_list); + +echo "where clause = " . $where_clause."<br />"; + + // Query to get the results + $sql = "SELECT r.title, r.ean, a.first_name, a.last_name, r.genre, r.price, r.image, i.stock, a.id + FROM record r + INNER JOIN artist a + ON r.artist_id=a.id + INNER JOIN inventory i + ON r.ean=i.record_ean + WHERE $where_clause + ORDER BY r.title, r.price DESC"; +//echo $sql."<br />"; + + // Start generating the table of results + echo '<table border="0" cellpadding="2">'; + + // Generate the search result headings + echo '<tr class="heading">'; + echo '<td>Job Title</td><td>Description</td><td>State</td><td>Date Posted</td>'; + echo '</tr>'; + + +$result = mysqli_query($link, $sql); + + // check query returned a result + if ($result === false) { + echo mysqli_error($link); + } else { + $content .= "<table border='1'>"; + $content .= "<thead><tr><th>Title</th><th>Artist</th><th>Genre</th><th>Price</th><th>Stock</th></tr></thead>"; + $content .= "<tbody>"; + // fetch associative array + while ($row = mysqli_fetch_assoc($result)) { + $content .= "<tr>"; + $content .= "<td>".$row['title']."</td>"; + $content .= "<td><a href='?page=artist&id=".$row['id']."'>".$row['first_name']." ".$row['last_name']."</a></td>"; + $content .= "<td>".$row['genre']."</td>"; + $content .= "<td>".$row['price']."</td>"; + $content .= "<td>".$row['stock']."</td>"; + $content .= "<td><img src='../".$row['image']."' style='height: 100px;' /></td>"; + $content .= "</tr>"; + } + $content .= "</tbody></table>"; + // free result set + mysqli_free_result($result); + } +} + +// output the content HTML +echo $content; + +?> diff --git a/week-13/includes/db_connect.php b/week-13/includes/db_connect.php new file mode 100644 index 0000000..53c5fb9 --- /dev/null +++ b/week-13/includes/db_connect.php @@ -0,0 +1,18 @@ +<?php + +/* Open a new connection to the MySQL server */ + +/* connect to the database */ +$link = mysqli_connect( + 'localhost', + 'recordstoreuser', + 'recordstorepwd', + 'recordstore' +); + +/* check connection succeeded */ +if (mysqli_connect_errno()) { + echo "Failed to connect to MySQL: " . mysqli_connect_error(); +} + +?> diff --git a/week-13/includes/functions.php b/week-13/includes/functions.php new file mode 100644 index 0000000..9a4c18e --- /dev/null +++ b/week-13/includes/functions.php @@ -0,0 +1,60 @@ +<? + +function is_logged_in(){ + if (isset($_SESSION['username'])){ +// print session_name()."<br />"; +// print $_COOKIE[session_name()]; + return true; + } +/* } else { + return false; + } +*/ +} + + +function build_query ($user_search, $sort) { + $clean_search = str_replace(',',' ',$user_search); + $search_words = explode(' ',$clean_search); + $final_search_words = array(); + if (count($search_words > 0)){ + foreach ($search_words as $word) { + if (!empty($word)) { + $final_search_words[] = $word; + } + } + } + $where_list = array(); + foreach ($final_search_words as $word) { + $where_list[] = "r.title like '%$word%'"; + $where_list[] = "a.first_name like '%$word%'"; + $where_list[] = "a.last_name like '%$word%'"; + } + $where_clause = implode(' OR ', $where_list); + +//echo "where clause = " . $where_clause."<br />"; + + // Query to get the results + $sql = "SELECT r.title, r.ean, a.first_name, a.last_name, r.genre, r.price, r.image, i.stock, a.id + FROM record r + INNER JOIN artist a + ON r.artist_id=a.id + INNER JOIN inventory i + ON r.ean=i.record_ean + WHERE $where_clause"; + +//add the sort to the search, if set + switch ($sort) { + case 1: + $sql .= " ORDER BY r.title"; + break; + case 2: + $sql .= " ORDER BY a.last_name"; + break; + default: + } + + return $sql; +} + +?> diff --git a/week-13/index.php b/week-13/index.php new file mode 100644 index 0000000..baae4a2 --- /dev/null +++ b/week-13/index.php @@ -0,0 +1,65 @@ +<?php + +//error_reporting(0); +error_reporting (E_ALL | E_STRICT); // Show all possible problems! + +// connect to the database +require('includes/db_connect.php'); +require('includes/functions.php'); + +// define a function to sanitise user input (this would ideally be in includes folder) +function clean_input($data) { + $data = trim($data); // strips unnecessary characters from beginning/end + $data = stripslashes($data); // remove backslashes + $data = htmlspecialchars($data); // replace special characters with HTML entities + return $data; +} + +// include the header HTML +include('templates/header.html'); + +// include the navigation HTML +include('templates/navigation.html'); + +// get the page id from the URL +// if no parameter detected... +if (!isset($_GET['page'])) { + $id = 'home'; // display home page +} else { + $id = $_GET['page']; // else requested page +} + +// use switch to determine which view to serve based on $id +switch ($id) { +case 'home' : + include 'views/home.php'; + break; +case 'record' : + include 'views/record.php'; + break; +case 'artist' : + include 'views/artist.php'; + break; +case 'orders' : + include 'views/orders.php'; + break; +case 'order' : + include 'views/order.php'; + break; +case 'add-record' : + include 'views/add-record.php'; + break; +case 'search' : + include 'views/search.php'; + break; +default : + include 'views/404.php'; +} + +// close the connection to the database +mysqli_close($link); + +// include the footer HTML +include('templates/footer.html'); + +?> diff --git a/week-13/sql/dummy_data.sql b/week-13/sql/dummy_data.sql new file mode 100644 index 0000000..7d05801 --- /dev/null +++ b/week-13/sql/dummy_data.sql @@ -0,0 +1,67 @@ +/* Note that, because foreign key values are being +inserted manually, tables must be recreated before running +this code in order to reset AUTO_INCREMENT */ + +/* Statement to insert some records in the artist table */ +INSERT INTO artist (id, first_name, last_name) +VALUES +(NULL, 'Bob', 'Marley'), +(NULL, 'Peter', 'Tosh'), +(NULL, 'Burning', 'Spear'), +(NULL, 'Alton', 'Ellis'), +(NULL, 'Gregory', 'Issacs'), +(NULL, 'Desmond', 'Dekker'); + +INSERT INTO record (ean, title, artist_id, genre, year, price) +VALUES +('00562056', 'Soul Rebel', 1, 'Reggae', 1970, 25.99 ), +('50264967', 'Catch A Fire', 1, 'Reggae', 1973, 25.99 ), +('00748396', 'Natty Dread', 1, 'Reggae', 1974, 20.99 ), +('00495739', 'Babylon By Bus', 1, 'Reggae', 1978, 24.99 ), +('00738432', 'Legalize It', 2, 'Reggae', 1976, 22.99 ), +('50847583', 'Bush Doctor', 2, 'Reggae', 1978, 20.99 ), +('30748743', 'Marcus Garvey', 3, 'Reggae', 1975, 24.99 ), +('50856384', 'Night Nurse', 5, 'Reggae', 1982, 17.99 ), +('50264972', 'Mr Issacs', 5, 'Reggae', 1982, 9.99 ), +('00649573', 'Black and Dekker', 6, 'Reggae', 1980, 19.99 ), +('00625485', 'Sunday Coming', 4, 'Reggae', 1970, 15.99 ); + +INSERT INTO customer (id, first_name, last_name, email_address, address_1, address_2, postcode) +VALUES +(NULL, 'John', 'Smith', 'john@smith.com', '1 Fake Street', 'London', 'SE3 5RD'), +(NULL, 'Sukie', 'Bapswent', 's.baps@gmail.com', '64 The Terrace', 'Whitby', 'YO65 3TR'), +(NULL, 'John', 'Thumb', 'jthumb@gmail.com', '25 Fantasy Grove', 'Brighton', 'BR2 6LV'); + +INSERT INTO transaction (id, customer_id, delivery_method, dt_date) +VALUES +(NULL, 1, 2, '2015-07-01 14:34:58'), +(NULL, 1, 2, '2015-04-01 11:22:35'), +(NULL, 3, 1, '2015-04-01 19:47:03'), +(NULL, 2, 1, '2015-05-11 22:01:19'); + +INSERT INTO orderline (id, transaction_id, record_ean, quantity) +VALUES +(NULL, 1, '00562056', 1), +(NULL, 1, '00495739', 1), +(NULL, 2, '00649573', 2), +(NULL, 2, '00495739', 1), +(NULL, 3, '00738432', 2), +(NULL, 3, '00562056', 1), +(NULL, 3, '50856384', 3), +(NULL, 3, '00495739', 1), +(NULL, 4, '00625485', 1), +(NULL, 4, '00562056', 2); + +INSERT INTO inventory (stock, record_ean) +VALUES +(25, '00562056'), +(18, '50264967'), +(15, '00748396'), +(20, '00495739'), +(10, '00738432'), +(7, '50847583'), +(3, '30748743'), +(34, '50856384'), +(22, '50264972'), +(15, '00649573'), +(12, '00625485'); diff --git a/week-13/sql/practice_queries.sql b/week-13/sql/practice_queries.sql new file mode 100644 index 0000000..ebb0dff --- /dev/null +++ b/week-13/sql/practice_queries.sql @@ -0,0 +1,9 @@ +/* Simple query +Fetch first_name and last_name columns from artist table */ +SELECT first_name, last_name FROM artist; + +/* Query with filters +Fetches titles from record table where year is 1973 and genre is Reggae */ +SELECT title FROM record +WHERE year = 1973 +AND genre = "Reggae"; \ No newline at end of file diff --git a/week-13/sql/record-store.sql b/week-13/sql/record-store.sql new file mode 100644 index 0000000..9717088 --- /dev/null +++ b/week-13/sql/record-store.sql @@ -0,0 +1,71 @@ +/* Make sure tables don't exist before creation */ +DROP TABLE IF EXISTS inventory, orderline, transaction, customer, record, artist; + +/* Define table for storing artists */ +CREATE TABLE artist ( + id INT AUTO_INCREMENT, + first_name VARCHAR(50), + last_name VARCHAR(50), + PRIMARY KEY(id) +) ENGINE=InnoDB; + +/* Define table for storing records (products) */ +CREATE TABLE record ( + ean CHAR(8) NOT NULL, + title VARCHAR(50) NOT NULL, + artist_id INT, + genre VARCHAR(50), + year YEAR(4), + price DECIMAL(10, 2) unsigned NOT NULL, + PRIMARY KEY (ean), + FOREIGN KEY (artist_id) + REFERENCES artist (id) + ON DELETE CASCADE +) ENGINE=InnoDB; + +/* Define table for storing customers */ +CREATE TABLE customer ( + id INT AUTO_INCREMENT, + first_name VARCHAR(50) NOT NULL, + last_name VARCHAR(50) NOT NULL, + email_address VARCHAR(50) NOT NULL, + address_1 VARCHAR(50) NOT NULL, + address_2 VARCHAR(50), + postcode VARCHAR(10) NOT NULL, + PRIMARY KEY (id) +) ENGINE=InnoDB; + +/* Define table for storing orders */ +CREATE TABLE transaction ( + id INT AUTO_INCREMENT, + customer_id INT NOT NULL, + delivery_method INT, + dt_date DATETIME, + PRIMARY KEY (id), + FOREIGN KEY (customer_id) + REFERENCES customer(id) +) ENGINE=InnoDB; + +/* Define table for storing orderlines */ +CREATE TABLE orderline ( + id INT AUTO_INCREMENT, + transaction_id INT, + record_ean CHAR(8), + quantity INT NOT NULL, + PRIMARY KEY (id), + FOREIGN KEY (transaction_id) + REFERENCES transaction(id), + FOREIGN KEY (record_ean) + REFERENCES record(ean) + ON UPDATE CASCADE + ON DELETE CASCADE +) ENGINE=InnoDB; + +/* Define table for inventory */ +CREATE TABLE inventory ( + stock INT unsigned DEFAULT 0, + record_ean CHAR(8), + PRIMARY KEY (stock, record_ean), + FOREIGN KEY (record_ean) + REFERENCES record (ean) +) ENGINE=InnoDB; diff --git a/week-13/sql/recordstore-dump.sql b/week-13/sql/recordstore-dump.sql new file mode 100644 index 0000000..f9dc7c8 --- /dev/null +++ b/week-13/sql/recordstore-dump.sql @@ -0,0 +1,196 @@ +-- MySQL dump 10.13 Distrib 5.6.26, for Linux (x86_64) +-- +-- Host: localhost Database: recordstore +-- ------------------------------------------------------ +-- Server version 5.6.26 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `artist` +-- + +DROP TABLE IF EXISTS `artist`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `artist` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `first_name` varchar(50) DEFAULT NULL, + `last_name` varchar(50) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `artist` +-- + +LOCK TABLES `artist` WRITE; +/*!40000 ALTER TABLE `artist` DISABLE KEYS */; +INSERT INTO `artist` VALUES (1,'Bob','Marley'),(2,'Peter','Tosh'),(3,'Burning','Spear'),(4,'Alton','Ellis'),(5,'Gregory','Issacs'),(6,'Desmond','Dekker'); +/*!40000 ALTER TABLE `artist` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `customer` +-- + +DROP TABLE IF EXISTS `customer`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `customer` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `first_name` varchar(50) NOT NULL, + `last_name` varchar(50) NOT NULL, + `email_address` varchar(50) NOT NULL, + `address_1` varchar(50) NOT NULL, + `address_2` varchar(50) DEFAULT NULL, + `postcode` varchar(10) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `customer` +-- + +LOCK TABLES `customer` WRITE; +/*!40000 ALTER TABLE `customer` DISABLE KEYS */; +INSERT INTO `customer` VALUES (1,'John','Smith','john@smith.com','1 Fake Street','London','SE3 5RD'),(2,'Sukie','Bapswent','s.baps@gmail.com','64 The Terrace','Whitby','YO65 3TR'),(3,'John','Thumb','jthumb@gmail.com','25 Fantasy Grove','Brighton','BR2 6LV'); +/*!40000 ALTER TABLE `customer` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `inventory` +-- + +DROP TABLE IF EXISTS `inventory`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `inventory` ( + `stock` int(10) unsigned NOT NULL DEFAULT '0', + `record_ean` char(8) NOT NULL DEFAULT '', + PRIMARY KEY (`stock`,`record_ean`), + KEY `record_ean` (`record_ean`), + CONSTRAINT `inventory_ibfk_1` FOREIGN KEY (`record_ean`) REFERENCES `record` (`ean`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `inventory` +-- + +LOCK TABLES `inventory` WRITE; +/*!40000 ALTER TABLE `inventory` DISABLE KEYS */; +INSERT INTO `inventory` VALUES (20,'00495739'),(25,'00562056'),(12,'00625485'),(15,'00649573'),(10,'00738432'),(15,'00748396'),(1,'1010010'),(5,'12121212'),(2,'131313'),(3,'30748743'),(18,'50264967'),(22,'50264972'),(7,'50847583'),(34,'50856384'); +/*!40000 ALTER TABLE `inventory` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `orderline` +-- + +DROP TABLE IF EXISTS `orderline`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `orderline` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `transaction_id` int(11) DEFAULT NULL, + `record_ean` char(8) DEFAULT NULL, + `quantity` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `transaction_id` (`transaction_id`), + KEY `record_ean` (`record_ean`), + CONSTRAINT `orderline_ibfk_1` FOREIGN KEY (`transaction_id`) REFERENCES `transaction` (`id`), + CONSTRAINT `orderline_ibfk_2` FOREIGN KEY (`record_ean`) REFERENCES `record` (`ean`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `orderline` +-- + +LOCK TABLES `orderline` WRITE; +/*!40000 ALTER TABLE `orderline` DISABLE KEYS */; +INSERT INTO `orderline` VALUES (1,1,'00562056',1),(2,1,'00495739',1),(3,2,'00649573',2),(4,2,'00495739',1),(5,3,'00738432',2),(6,3,'00562056',1),(7,3,'50856384',3),(8,3,'00495739',1),(9,4,'00625485',1),(10,4,'00562056',2); +/*!40000 ALTER TABLE `orderline` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `record` +-- + +DROP TABLE IF EXISTS `record`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `record` ( + `ean` char(8) NOT NULL, + `title` varchar(50) NOT NULL, + `artist_id` int(11) DEFAULT NULL, + `genre` varchar(50) DEFAULT NULL, + `year` year(4) DEFAULT NULL, + `price` decimal(10,2) unsigned NOT NULL, + `image` varchar(64) DEFAULT NULL, + PRIMARY KEY (`ean`), + KEY `artist_id` (`artist_id`), + CONSTRAINT `record_ibfk_1` FOREIGN KEY (`artist_id`) REFERENCES `artist` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `record` +-- + +LOCK TABLES `record` WRITE; +/*!40000 ALTER TABLE `record` DISABLE KEYS */; +INSERT INTO `record` VALUES ('00495739','Babylon By Bus',1,'Reggae',1978,24.99,NULL),('00562056','Soul Rebel',1,'Reggae',1970,25.99,NULL),('00625485','Sunday Coming',4,'Reggae',1970,15.99,NULL),('00649573','Black and Dekker',6,'Reggae',1980,19.99,NULL),('00738432','Legalize It',2,'Reggae',1976,22.99,NULL),('00748396','Natty Dread',1,'Reggae',1974,20.99,NULL),('1010010','A test',6,'testy',2000,20.00,'uploads/2009-a32-08-05-adorno-b.jpg'),('12121212','Dek Stop',6,'2 tone',1978,10.99,NULL),('131313','blahblah',4,'hip hop',2011,9.99,NULL),('30748743','Marcus Garvey',3,'Reggae',1975,24.99,NULL),('50264967','Catch A Fire',1,'Reggae',1973,25.99,NULL),('50264972','Mr Issacs',5,'Reggae',1982,9.99,NULL),('50847583','Bush Doctor',2,'Reggae',1978,20.99,NULL),('50856384','Night Nurse',5,'Reggae',1982,17.99,NULL); +/*!40000 ALTER TABLE `record` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `transaction` +-- + +DROP TABLE IF EXISTS `transaction`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `transaction` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `customer_id` int(11) NOT NULL, + `delivery_method` int(11) DEFAULT NULL, + `dt_date` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `customer_id` (`customer_id`), + CONSTRAINT `transaction_ibfk_1` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `transaction` +-- + +LOCK TABLES `transaction` WRITE; +/*!40000 ALTER TABLE `transaction` DISABLE KEYS */; +INSERT INTO `transaction` VALUES (1,1,2,'2015-07-01 14:34:58'),(2,1,2,'2015-04-01 11:22:35'),(3,3,1,'2015-04-01 19:47:03'),(4,2,1,'2015-05-11 22:01:19'); +/*!40000 ALTER TABLE `transaction` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2016-01-19 18:54:19 diff --git a/week-13/sql/recordstore-dump2.sql b/week-13/sql/recordstore-dump2.sql new file mode 100644 index 0000000..f46498b --- /dev/null +++ b/week-13/sql/recordstore-dump2.sql @@ -0,0 +1,196 @@ +-- MySQL dump 10.13 Distrib 5.6.26, for Linux (x86_64) +-- +-- Host: localhost Database: recordstore +-- ------------------------------------------------------ +-- Server version 5.6.26 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `artist` +-- + +DROP TABLE IF EXISTS `artist`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `artist` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `first_name` varchar(50) DEFAULT NULL, + `last_name` varchar(50) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `artist` +-- + +LOCK TABLES `artist` WRITE; +/*!40000 ALTER TABLE `artist` DISABLE KEYS */; +INSERT INTO `artist` VALUES (1,'Bob','Marley'),(2,'Peter','Tosh'),(3,'Burning','Spear'),(4,'Alton','Ellis'),(5,'Gregory','Issacs'),(6,'Desmond','Dekker'); +/*!40000 ALTER TABLE `artist` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `customer` +-- + +DROP TABLE IF EXISTS `customer`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `customer` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `first_name` varchar(50) NOT NULL, + `last_name` varchar(50) NOT NULL, + `email_address` varchar(50) NOT NULL, + `address_1` varchar(50) NOT NULL, + `address_2` varchar(50) DEFAULT NULL, + `postcode` varchar(10) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `customer` +-- + +LOCK TABLES `customer` WRITE; +/*!40000 ALTER TABLE `customer` DISABLE KEYS */; +INSERT INTO `customer` VALUES (1,'John','Smith','john@smith.com','1 Fake Street','London','SE3 5RD'),(2,'Sukie','Bapswent','s.baps@gmail.com','64 The Terrace','Whitby','YO65 3TR'),(3,'John','Thumb','jthumb@gmail.com','25 Fantasy Grove','Brighton','BR2 6LV'); +/*!40000 ALTER TABLE `customer` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `inventory` +-- + +DROP TABLE IF EXISTS `inventory`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `inventory` ( + `stock` int(10) unsigned NOT NULL DEFAULT '0', + `record_ean` char(8) NOT NULL DEFAULT '', + PRIMARY KEY (`stock`,`record_ean`), + KEY `record_ean` (`record_ean`), + CONSTRAINT `inventory_ibfk_1` FOREIGN KEY (`record_ean`) REFERENCES `record` (`ean`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `inventory` +-- + +LOCK TABLES `inventory` WRITE; +/*!40000 ALTER TABLE `inventory` DISABLE KEYS */; +INSERT INTO `inventory` VALUES (20,'00495739'),(25,'00562056'),(12,'00625485'),(15,'00649573'),(10,'00738432'),(15,'00748396'),(1,'1000000'),(1,'1010010'),(5,'12121212'),(2,'131313'),(3,'30748743'),(18,'50264967'),(22,'50264972'),(7,'50847583'),(34,'50856384'),(2,'985'); +/*!40000 ALTER TABLE `inventory` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `orderline` +-- + +DROP TABLE IF EXISTS `orderline`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `orderline` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `transaction_id` int(11) DEFAULT NULL, + `record_ean` char(8) DEFAULT NULL, + `quantity` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `transaction_id` (`transaction_id`), + KEY `record_ean` (`record_ean`), + CONSTRAINT `orderline_ibfk_1` FOREIGN KEY (`transaction_id`) REFERENCES `transaction` (`id`), + CONSTRAINT `orderline_ibfk_2` FOREIGN KEY (`record_ean`) REFERENCES `record` (`ean`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `orderline` +-- + +LOCK TABLES `orderline` WRITE; +/*!40000 ALTER TABLE `orderline` DISABLE KEYS */; +INSERT INTO `orderline` VALUES (1,1,'00562056',1),(2,1,'00495739',1),(3,2,'00649573',2),(4,2,'00495739',1),(5,3,'00738432',2),(6,3,'00562056',1),(7,3,'50856384',3),(8,3,'00495739',1),(9,4,'00625485',1),(10,4,'00562056',2); +/*!40000 ALTER TABLE `orderline` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `record` +-- + +DROP TABLE IF EXISTS `record`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `record` ( + `ean` char(8) NOT NULL, + `title` varchar(50) NOT NULL, + `artist_id` int(11) DEFAULT NULL, + `genre` varchar(50) DEFAULT NULL, + `year` year(4) DEFAULT NULL, + `price` decimal(10,2) unsigned NOT NULL, + `image` varchar(64) DEFAULT NULL, + PRIMARY KEY (`ean`), + KEY `artist_id` (`artist_id`), + CONSTRAINT `record_ibfk_1` FOREIGN KEY (`artist_id`) REFERENCES `artist` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `record` +-- + +LOCK TABLES `record` WRITE; +/*!40000 ALTER TABLE `record` DISABLE KEYS */; +INSERT INTO `record` VALUES ('00495739','Babylon By Bus',1,'Reggae',1978,24.99,NULL),('00562056','Soul Rebel',1,'Reggae',1970,25.99,NULL),('00625485','Sunday Coming',4,'Reggae',1970,15.99,NULL),('00649573','Black and Dekker',6,'Reggae',1980,19.99,NULL),('00738432','Legalize It',2,'Reggae',1976,22.99,NULL),('00748396','Natty Dread',1,'Reggae',1974,20.99,NULL),('1000000','B test',5,'funk',2016,26.00,'uploads/avatar 1.jpg'),('1010010','A test',6,'testy',2000,20.00,'uploads/2009-a32-08-05-adorno-b.jpg'),('12121212','Dek Stop',6,'2 tone',1978,10.99,NULL),('131313','blahblah',4,'hip hop',2011,9.99,NULL),('30748743','Marcus Garvey',3,'Reggae',1975,24.99,NULL),('50264967','Catch A Fire',1,'Reggae',1973,25.99,NULL),('50264972','Mr Issacs',5,'Reggae',1982,9.99,NULL),('50847583','Bush Doctor',2,'Reggae',1978,20.99,NULL),('50856384','Night Nurse',5,'Reggae',1982,17.99,NULL),('985','test',6,'test',0000,22.00,'uploads/think of this as a window.jpg'); +/*!40000 ALTER TABLE `record` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `transaction` +-- + +DROP TABLE IF EXISTS `transaction`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `transaction` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `customer_id` int(11) NOT NULL, + `delivery_method` int(11) DEFAULT NULL, + `dt_date` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `customer_id` (`customer_id`), + CONSTRAINT `transaction_ibfk_1` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `transaction` +-- + +LOCK TABLES `transaction` WRITE; +/*!40000 ALTER TABLE `transaction` DISABLE KEYS */; +INSERT INTO `transaction` VALUES (1,1,2,'2015-07-01 14:34:58'),(2,1,2,'2015-04-01 11:22:35'),(3,3,1,'2015-04-01 19:47:03'),(4,2,1,'2015-05-11 22:01:19'); +/*!40000 ALTER TABLE `transaction` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2016-01-26 16:55:43 diff --git a/week-13/sql/user-table.sql b/week-13/sql/user-table.sql new file mode 100644 index 0000000..d0a426b --- /dev/null +++ b/week-13/sql/user-table.sql @@ -0,0 +1,25 @@ +-- +-- Table structure for table `users` +-- + +DROP TABLE IF EXISTS `users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `users` ( + `user_id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(50) DEFAULT NULL, + `password` varchar(50) DEFAULT NULL, + PRIMARY KEY (`user_id`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `users` +-- + +LOCK TABLES `users` WRITE; +/*!40000 ALTER TABLE `users` DISABLE KEYS */; +INSERT INTO `users` VALUES (1,'alice','5f55cff83a8f2f274947745629d3ede299a05bfd'),(2,'bob','b639bbe4c65ae9ea79b4268701e8656a80c95b14'),(3,'cliff','0c0b7dce234a29cf42d72db5420d708ac9251a82'),(4,'dan','4376fd0454dbaf40ba385212c04c0d18319c572b'),(5,'eric','9b2b6e9f988f06e7807694b7903cd7832e154975'),(6,'fabio','782a7facdc65b96b3896f40e43f5b5ec04393b3e'); +/*!40000 ALTER TABLE `users` ENABLE KEYS */; +UNLOCK TABLES; + diff --git a/week-13/templates/footer.html b/week-13/templates/footer.html new file mode 100644 index 0000000..2ab5c0d --- /dev/null +++ b/week-13/templates/footer.html @@ -0,0 +1,2 @@ + </body> +</html> diff --git a/week-13/templates/header.html b/week-13/templates/header.html new file mode 100644 index 0000000..fc56554 --- /dev/null +++ b/week-13/templates/header.html @@ -0,0 +1,7 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="UTF-8"> + <title>Record Store</title> + </head> + <body> diff --git a/week-13/templates/navigation.html b/week-13/templates/navigation.html new file mode 100644 index 0000000..9f89599 --- /dev/null +++ b/week-13/templates/navigation.html @@ -0,0 +1,7 @@ +<nav> + <ul> + <li><a href="?page=home" title="home">Home</a></li> + <li><a href="?page=record" title="records">Records</a></li> + <li><a href="?page=search" title="search">Search</a></li> + </ul> +</nav> diff --git a/week-13/uploads/2009-a32-08-05-adorno-b.jpg b/week-13/uploads/2009-a32-08-05-adorno-b.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4e896284f0a353698a1567dbd60fe9084352102b GIT binary patch literal 35380 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�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 CN0P(< literal 0 HcmV?d00001 diff --git a/week-13/uploads/avatar 1.jpg b/week-13/uploads/avatar 1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0f72ed7d3df1b440ca9e8128ce3bf9b495fac37e GIT binary patch literal 13273 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 literal 0 HcmV?d00001 diff --git a/week-13/uploads/je-participe.gif b/week-13/uploads/je-participe.gif new file mode 100644 index 0000000000000000000000000000000000000000..91e7b890942debafe2718187d3f0f785b09d25ea GIT binary patch literal 16732 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 DyMd(* literal 0 HcmV?d00001 diff --git a/week-13/uploads/man-ray-iron-A.gif b/week-13/uploads/man-ray-iron-A.gif new file mode 100644 index 0000000000000000000000000000000000000000..127305ad2f453616c0858c28a09f65dc7a57afcf GIT binary patch literal 5401 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 literal 0 HcmV?d00001 diff --git a/week-13/uploads/think of this as a window.jpg b/week-13/uploads/think of this as a window.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6974a3771579395769a65c117e46e5887a83f285 GIT binary patch literal 68496 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 P)4}w^{{V#)PzV3nVG(}B literal 0 HcmV?d00001 diff --git a/week-13/views/404.php b/week-13/views/404.php new file mode 100644 index 0000000..7ae2fe7 --- /dev/null +++ b/week-13/views/404.php @@ -0,0 +1,10 @@ +<?php + +// create variable for content HTML +$content = "<h1>Page not found</h1>"; +$content .= "<p>Sorry, the page you requested could not be found.</p>"; + +// output the content HTML +echo $content; + +?> diff --git a/week-13/views/add-record-insecure.php b/week-13/views/add-record-insecure.php new file mode 100644 index 0000000..841a507 --- /dev/null +++ b/week-13/views/add-record-insecure.php @@ -0,0 +1,100 @@ +<?php + +$content = "<h1>Add a record</h1>"; + +// define a variable with path to the script which will process form +// -> $_SERVER["PHP_SELF"] is a path to the current script (index.php) +$action = $_SERVER["PHP_SELF"]."?page=add-record"; + +// fetch the artists so that we have access to their names and IDs +$sql = "SELECT id, first_name, last_name + FROM artist + ORDER BY last_name"; + +$result = mysqli_query($link, $sql); + +// check query returned a result +if ($result === false) { + echo mysqli_error($link); +} else { + $options = ""; + // create an option for each artist + while ($row = mysqli_fetch_assoc($result)) { + $options .= "<option value='".$row['id']."'>"; + $options .= $row['first_name']." ".$row['last_name']; + $options .= "</option>"; + } +} + +// define the form HTML (would ideally be in a template) +$form_html = "<form action='".$action."' method='POST'> + <fieldset> + <label for='ean'>EAN (required):</label> + <input type='text' name='ean'/> + </fieldset> + <fieldset> + <label for='title'>Title:</label> + <input type='text' name='title' /> + </fieldset> + <fieldset> + <label for='artist_id'>Artist:</label> + <select name='artist_id'> + + ".$options." + <option value='NULL'>Not listed</option> + </select> + </fieldset> + <fieldset> + <label for='genre'>Genre</label> + <input type='text' name='genre' /> + </fieldset> + <fieldset> + <label for='year'>Year:</label> + <input type='text' name='year' size='5' placeholder='YYYY' /> + </fieldset> + <fieldset> + <label for='price'>Price (£):</label> + <input type='text' name='price' placeholder='00.00' /> + </fieldset> + <button type='submit'>Submit</button> + </form>"; + +// append form HTML to content string +$content .= $form_html; + +// ------- START form processing code... ------- + +// define variables and set to empty values +$title = $artist_id = $price = $year = $genre = ""; + +// check if there was a POST request +if ($_SERVER["REQUEST_METHOD"] == "POST") { + // validate the form data + $ean = $_POST["ean"]; + $title = $_POST["title"]; + $artist_id = $_POST["artist_id"]; + $genre = $_POST["genre"]; + $year = $_POST["year"]; + $price = $_POST["price"]; + + // define the insertion query + $sql = "INSERT INTO record (ean, title, artist_id, genre, year, price) + VALUES ('$ean', '$title', '$artist_id', '$genre', '$year', '$price')"; + + // run the query to insert the data + $result = mysqli_query($link, $sql); + + // check if the query went ok + if ($result === false) { + echo mysqli_error($link); + } else { + $content .= "Record successfully added to database."; + } +} + +// ------- END form processing code... ------- + +// output the html +echo($content); + +?> diff --git a/week-13/views/add-record.php b/week-13/views/add-record.php new file mode 100644 index 0000000..b8d556e --- /dev/null +++ b/week-13/views/add-record.php @@ -0,0 +1,174 @@ +<?php + +$content = "<h1>Add a record</h1>"; + +// define a variable with path to the script which will process form +// -> $_SERVER["PHP_SELF"] is a path to the current script (index.php) +// -> htmlspecialchars() is used to replace special characters with HTML entities */ +$action = htmlspecialchars($_SERVER["PHP_SELF"]."?page=add-record"); + +// fetch the artists so that we have access to their names and IDs +$sql = "SELECT id, first_name, last_name + FROM artist + ORDER BY last_name"; + +$result = mysqli_query($link, $sql); + +// check query returned a result +if ($result === false) { + echo mysqli_error($link); +} else { + $options = ""; + // create an option for each artist + while ($row = mysqli_fetch_assoc($result)) { + $options .= "<option value='".$row['id']."'>"; + $options .= $row['first_name']." ".$row['last_name']; + $options .= "</option>"; + } +} + +// define the form HTML (would ideally be in a template) +$form_html = "<form action='".$action."' enctype='multipart/form-data' method='POST'> +<input type='hidden' name='MAX_FILE_SIZE' value='1000000' /> + <fieldset> + <label for='ean'>EAN (required):</label> + <input type='text' name='ean'/> + </fieldset> + <fieldset> + <label for='title'>Title:</label> + <input type='text' name='title' /> + </fieldset> + <fieldset> + <label for='artist_id'>Artist:</label> + <select name='artist_id'> + + ".$options." + <option value='NULL'>Not listed</option> + </select> + </fieldset> + <fieldset> + <label for='genre'>Genre</label> + <input type='text' name='genre' /> + </fieldset> + <fieldset> + <label for='year'>Year:</label> + <input type='text' name='year' size='5' placeholder='YYYY' /> + </fieldset> + <fieldset> + <label for='price'>Price (£):</label> + <input type='text' name='price' placeholder='00.00' /> + </fieldset> + <fieldset> + <label for='price'>Stock:</label> + <input type='text' name='stock' placeholder='0' /> + </fieldset> +<label>image <input type='file' id='image' name='image' /></label><br /> + <button type='submit'>Submit</button> + </form>"; + +// append form HTML to content string +$content .= $form_html; + +// ------- START form processing code... ------- + + +// define variables and set to empty values +$title = $artist_id = $price = $year = $genre = $stock = ""; + +// check if there was a POST request +if ($_SERVER["REQUEST_METHOD"] == "POST") { + // validate the form data + $ean = mysqli_real_escape_string($link, clean_input($_POST["ean"])); + $title = mysqli_real_escape_string($link, clean_input($_POST["title"])); + $artist_id = mysqli_real_escape_string($link, clean_input($_POST["artist_id"])); + $genre = mysqli_real_escape_string($link, clean_input($_POST["genre"])); + $year = mysqli_real_escape_string($link, clean_input($_POST["year"])); + $price = mysqli_real_escape_string($link, clean_input($_POST["price"])); + $stock = mysqli_real_escape_string($link, clean_input($_POST["stock"])); + + // handle the image upload + $uploadOk = 1; + + $target_dir = "uploads/"; + + // Check if image file is a actual image or fake image + $check = getimagesize($_FILES["image"]["tmp_name"]); + if($check !== false) { + // echo "File is an image - " . $check["mime"] . "."; + $uploadOk = 1; + } else { + echo "File is not an image."; + $uploadOk = 0; + } + + // Check file size + if ($_FILES["image"]["size"] > 1000000) { + echo "Sorry, your file is too large."; + $uploadOk = 0; + } + + $target_file = $target_dir . basename($_FILES["image"]["name"]); + $image = $target_file; + + // Check if file already exists + if (file_exists($target_file)) { + echo "Sorry, file already exists."; + $uploadOk = 0; + } + + $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); + + // Allow certain file formats + if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" + && $imageFileType != "gif" ) { + echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; + $uploadOk = 0; + } + + // Check if $uploadOk is set to 0 by an error + if ($uploadOk == 0) { + echo "Sorry, your file was not uploaded."; + + // if everything is ok, try to upload file + } else { + if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) { + echo "The file ". basename( $_FILES["image"]["name"]). " has been uploaded."; + } else { + echo "Sorry, there was an error uploading your file."; + } + } + // end of image upload + + // turn autocommit off + mysqli_autocommit($link, FALSE); + + // start a transaction + mysqli_query($link, 'START TRANSACTION'); + + // define the insertion query to add a new record in record table + $query1 = sprintf("INSERT INTO record (ean, title, artist_id, genre, year, price, image) + VALUES ('%s', '%s', %d, '%s', %d, %f, '%s')", $ean, $title, $artist_id, $genre, $year, $price, $image); + + // define the insertion query to add a new record in inventory table + $query2 = sprintf("INSERT INTO inventory (stock, record_ean) + VALUES (%d, '%s')", $stock, $ean); + + // check if either of the queries failed (returned false) + if (!mysqli_query($link, $query1) or !mysqli_query($link, $query2)) { + echo mysqli_error($link); + mysqli_rollback($link); // if so, rollback transaction + } else { + mysqli_commit($link); // else, commit transaction + $content .= "Record successfully added to database."; + } + + + + } + + // ------- END form processing code... ------- + + // output the html + echo($content); + +?> diff --git a/week-13/views/artist.php b/week-13/views/artist.php new file mode 100644 index 0000000..ea371d7 --- /dev/null +++ b/week-13/views/artist.php @@ -0,0 +1,68 @@ +<?php + +// check if id parameter was not set in query string +if (!isset($_GET['id'])) { + + // define $content with suitable message + $content = "<h1>I don't know which artist you're looking for...</h1>"; + +} else { // id was set, so carry on... + + // define $artist_id variable and assign value of id parameter + $artist_id = $_GET['id']; + + // fetch record titles for artist with id matching $artist_id + $sql = "SELECT r.title, r.year, r.price, a.first_name, a.last_name + FROM record r + INNER JOIN artist a + ON r.artist_id=a.id + WHERE a.id=".$artist_id." + ORDER BY year ASC"; + + $result = mysqli_query($link, $sql); + + // check query returned a result + if ($result === false) { + echo mysqli_error($link); + } else { + + // define a row counter + $i = 0; + + // fetch associative array + while ($row = mysqli_fetch_assoc($result)) { + + // do this if we are on first row + if ($i == 0) { + + // initialise $content string, assigning it a page header + $content = "<h1>".$row['first_name']." ".$row['last_name']." Records</h1>"; + // append $content string with table definition + $content .= "<table border='1'><tbody>"; + + } + + // append table rows to $content string + $content .= "<tr>"; + $content .= "<td>".$row['title']."</td>"; + $content .= "<td>".$row['year']."</td>"; + $content .= "<td>£".$row['price']."</td>"; + $content .= "</tr>"; + + // increment the row counter + $i++; + + } + + // append $content string with closing table tags + $content .= "</tbody></table>"; + + // free result set + mysqli_free_result($result); + } +} + +// output the content HTML +echo $content; + +?> diff --git a/week-13/views/home.php b/week-13/views/home.php new file mode 100644 index 0000000..dc1ed44 --- /dev/null +++ b/week-13/views/home.php @@ -0,0 +1,10 @@ +<?php + +// create variable for content HTML +$content = "<h1>Welcome to Goldsmith's Record Store</h1>"; +$content .= "<p>Follow the links above to browse the store.</p>"; + +// output the content HTML +echo $content; + +?> diff --git a/week-13/views/order.php b/week-13/views/order.php new file mode 100644 index 0000000..0f81c63 --- /dev/null +++ b/week-13/views/order.php @@ -0,0 +1,67 @@ +<?php + +// check the order_id parameter has been set in the URL +if (isset($_GET['order_id'])) +{ + $order_id = $_GET['order_id']; +} else { + $order_id = -1; // if not, set to an implausible value +} + +// fetch order details associated with current order id +$sql = "SELECT r.ean, r.title, ol.quantity, ol.transaction_id, r.price + FROM record r + INNER JOIN orderline ol + ON ol.record_ean=r.ean + WHERE ol.transaction_id=".$order_id; +$result = mysqli_query($link, $sql); + +// check query returned a result +if ($result === false) { + echo mysqli_error($link); +} else { + + // Find the number of rows returned + $num_rows = mysqli_num_rows($result); + + // Check it's not 0 + if ($num_rows == 0) { + $content = "<h1>Order not found</h1>"; + } else { + // create variable for content HTML + $content = "<h1>Order ".$order_id."</h1>"; + $content .= "<table border='1'>"; + $content .= "<thead><tr> + <th>EAN</th> + <th>Title</th> + <th>Quantity</th> + <th>Price</th> + <th>Total</th> + </tr></thead>"; + $content .= "<tbody>"; + // initialise total order price to 0 + $total = 0.00; + // fetch associative array + while ($row = mysqli_fetch_assoc($result)) { + $subtotal = $row['quantity'] * $row['price']; + $total = $total + $subtotal; + $content .= "<tr>"; + $content .= "<td>".$row['ean']."</td>"; + $content .= "<td>".$row['title']."</td>"; + $content .= "<td>".$row['quantity']."</td>"; + $content .= "<td>£".$row['price']."</td>"; + $content .= "<td>£".$subtotal."</td>"; + $content .= "</tr>"; + } + $content .= "<tr><td colspan=4><b>TOTAL</b><td><b>£".$total."</b></td></tr>"; + $content .= "</tbody></table>"; + // free result set + mysqli_free_result($result); + + } +} + +// output the content HTML +echo $content; + +?> diff --git a/week-13/views/orders.php b/week-13/views/orders.php new file mode 100644 index 0000000..d122891 --- /dev/null +++ b/week-13/views/orders.php @@ -0,0 +1,40 @@ +<?php + +// initialise string variable for content HTML +$content = "<h1>Orders</h1>"; + +// fetch all transactions (orders) and group by customer id +$sql = "SELECT id, customer_id FROM transaction + ORDER BY customer_id"; +$result = mysqli_query($link, $sql); + +// check query returned a result +if ($result === false) +{ + echo mysqli_error($link); +} else { + $num_rows = mysqli_num_rows($result); + if ($num_rows > 0) + { + $content .= "<table border='1'>"; + $content .= "<thead><tr><th>Order ID</th><th>Customer ID</th></tr></thead>"; + $content .= "<tbody>"; + // fetch each row in result set as an associative array + while ($row = mysqli_fetch_assoc($result)) { + $content .= "<tr>"; + $content .= "<td><a href=\"?page=order&order_id=".$row['id']."\">".$row['id']."</a></td>"; + $content .= "<td>".$row['customer_id']."</td>"; + $content .= "</tr>"; + } + $content .= "</tbody></table>"; + } else { + $content .= "<p>There are no orders to display.</p>"; + } + // free result set + mysqli_free_result($result); +} + +// output the content HTML +echo $content; + +?> diff --git a/week-13/views/record.php b/week-13/views/record.php new file mode 100644 index 0000000..06ffa5e --- /dev/null +++ b/week-13/views/record.php @@ -0,0 +1,43 @@ +<?php + +// create variable for content HTML +$content = "<h1>Records</h1>"; +$content .= "<p>You are now viewing all records in the database.</p>"; + +// fetch records as a result set +$sql = "SELECT r.title, r.ean, a.first_name, a.last_name, r.genre, r.price, r.image, i.stock, a.id + FROM record r + INNER JOIN artist a + ON r.artist_id=a.id + INNER JOIN inventory i + ON r.ean=i.record_ean + ORDER BY r.title, r.price DESC"; +$result = mysqli_query($link, $sql); + +// check query returned a result +if ($result === false) { + echo mysqli_error($link); +} else { + $content .= "<table border='1'>"; + $content .= "<thead><tr><th>Title</th><th>Artist</th><th>Genre</th><th>Price</th><th>Stock</th></tr></thead>"; + $content .= "<tbody>"; + // fetch associative array + while ($row = mysqli_fetch_assoc($result)) { + $content .= "<tr>"; + $content .= "<td>".$row['title']."</td>"; + $content .= "<td><a href='?page=artist&id=".$row['id']."'>".$row['first_name']." ".$row['last_name']."</a></td>"; + $content .= "<td>".$row['genre']."</td>"; + $content .= "<td>".$row['price']."</td>"; + $content .= "<td>".$row['stock']."</td>"; + $content .= "<td><img src='".$row['image']."' style='height: 100px;' /></td>"; + $content .= "</tr>"; + } + $content .= "</tbody></table>"; + // free result set + mysqli_free_result($result); +} + +// output the content HTML +echo $content; + +?> diff --git a/week-13/views/search.php b/week-13/views/search.php new file mode 100644 index 0000000..8e9482d --- /dev/null +++ b/week-13/views/search.php @@ -0,0 +1,131 @@ +<? +$content = "<h1>Search</h1>"; + +// define a variable with path to this script which will process form +$action = htmlspecialchars($_SERVER["PHP_SELF"]."?page=search"); + +// define the search form +// note: need ?page=search for index to route here +// note: a form wihout an action will submit to the document's address +$form_html = "<form method='get'> + <label for='usersearch'>search the record store</label><br /> + <input type='text' id='usersearch' name='usersearch' /><br /> + <input type='submit' name='page' value='search' /> + </form>"; + +// append form HTML to content string +$content .= $form_html; + +// ------- START form processing code... ------- + +// check if there was a POST request +//if ($_SERVER["REQUEST_METHOD"] == "POST") { +if (!empty($_GET['usersearch'])) { + $sort =""; + +// make a build_query function for the search + $user_search = $_GET['usersearch']; + $user_search = clean_input($user_search); + if (!empty($_GET['sort'])) { + $sort = $_GET['sort']; + $sort = clean_input($sort); + } + $sql = build_query($user_search, $sort); + + //sort pagination + $cur_page = isset($_GET['pagenumber']) ? $_GET['pagenumber'] : 1 ; + $results_per_page = 3; + $skip = (($cur_page - 1) * $results_per_page); + + // Start generating the table of results + echo '<table border="0" cellpadding="2">'; + + // Generate the search result headings + echo '<tr class="heading">'; + echo '<td>Job Title</td><td>Description</td><td>State</td><td>Date Posted</td>'; + echo '</tr>'; + + +$result = mysqli_query($link, $sql); + + // check query returned a result + if ($result === false) { + echo mysqli_error($link); + } else { + + // info needed for pagination + $total = mysqli_num_rows($result); + $num_pages = ceil($total / $results_per_page); + + // query again to get subset of results per page + $sql = $sql .= " LIMIT $skip, $results_per_page"; + $result = mysqli_query($link, $sql); + + $content .= "<table border='1'>"; + $content .= "<thead><tr><th><a href='?page=search&usersearch=$user_search&sort=1'>Title</a></th>"; + $content .= "<th><a href='?page=search&usersearch=$user_search&sort=2'>Artist</a></th><th>Genre</th><th>Price</th><th>Stock</th></tr></thead>"; + $content .= "<tbody>"; + // fetch associative array + while ($row = mysqli_fetch_assoc($result)) { + $content .= "<tr>"; + $content .= "<td>".$row['title']."</td>"; + $content .= "<td><a href='?page=artist&id=".$row['id']."'>".$row['first_name']." ".$row['last_name']."</a></td>"; + $content .= "<td>".$row['genre']."</td>"; + $content .= "<td>".$row['price']."</td>"; + $content .= "<td>".$row['stock']."</td>"; + $content .= "<td><img src='".$row['image']."' style='height: 100px;' /></td>"; + $content .= "</tr>"; + + } + $content .= "</tbody></table>"; + + // This function builds navigational page links based on the current page and the number of pages + function generate_page_links($user_search, $sort, $cur_page, $num_pages) { + $page_links = ''; +/* + // If this page is not the first page, generate the "previous" link + if ($cur_page > 1) { + $page_links .= '<a href="' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=' . $sort . '&page=' . ($cur_page - 1) . '"><-</a> '; + } + else { + $page_links .= '<- '; + } +*/ + // Loop through the pages generating the page number links + for ($i = 1; $i <= $num_pages; $i++) { + if ($cur_page == $i) { + $page_links .= ' ' . $i; + } + else { + $page_links .= ' <a href="' . $_SERVER['PHP_SELF'] . '?page=search&usersearch=' . $user_search . '&sort=' . $sort . '&pagenumber=' . $i . '"> ' . $i . '</a>'; + } + } +/* + // If this page is not the last page, generate the "next" link + if ($cur_page < $num_pages) { + $page_links .= ' <a href="' . $_SERVER['PHP_SELF'] . '?usersearch=' . $user_search . '&sort=' . $sort . '&page=' . ($cur_page + 1) . '">-></a>'; + } + else { + $page_links .= ' ->'; + } +*/ + return $page_links; + } + + + // Generate navigational page links if we have more than one page + if ($num_pages > 1) { + echo generate_page_links($user_search, $sort, $cur_page, $num_pages); + } + + + + // free result set + mysqli_free_result($result); + } + +} +// output the content HTML +echo $content; + +?> -- GitLab