From 024d6465c5e8fff2bfbc99005e8544644a32e883 Mon Sep 17 00:00:00 2001 From: mauirixxx Date: Tue, 30 Jan 2018 15:56:23 -1000 Subject: [PATCH] actual initial commit just looking to back this little project up --- LICENSE | 13 ++++ README.md | 11 ++++ collection.php | 34 ++++++++++ connect.php | 6 ++ edit.php | 89 +++++++++++++++++++++++++ footer.php | 8 +++ header.php | 23 +++++++ images/no-image-available.jpg | Bin 0 -> 10845 bytes imageupload.php | 75 +++++++++++++++++++++ index.php | 11 ++++ list.php | 27 ++++++++ login.php | 37 +++++++++++ logout.php | 19 ++++++ newfunko.php | 51 +++++++++++++++ register.php | 2 + search.php | 63 ++++++++++++++++++ smart_resize_image.function.php | 130 +++++++++++++++++++++++++++++++++++++ sql/db_popcollections_examples.sql | 3 + sql/db_popimages_data.sql | 3 + sql/db_structure_only.sql | 41 ++++++++++++ style.css | 52 +++++++++++++++ 21 files changed, 698 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 collection.php create mode 100644 connect.php create mode 100644 edit.php create mode 100644 footer.php create mode 100644 header.php create mode 100644 images/no-image-available.jpg create mode 100644 imageupload.php create mode 100644 index.php create mode 100644 list.php create mode 100644 login.php create mode 100644 logout.php create mode 100644 newfunko.php create mode 100644 register.php create mode 100644 search.php create mode 100644 smart_resize_image.function.php create mode 100644 sql/db_popcollections_examples.sql create mode 100644 sql/db_popimages_data.sql create mode 100644 sql/db_structure_only.sql create mode 100644 style.css diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..ab11804 --- /dev/null +++ b/LICENSE @@ -0,0 +1,13 @@ +DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 mauirixxx + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..95f7352 --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +# funkopopscollector +Yet another PHP based Funko Pop collection tracker, about as bare bones as you can get, but it's functional. + +Basically you can add a new Funko Pop you own - it collects the Pop number, Pop name, Pop collection, +you can add/edit the date you bought the Pop, and add an image to it afterwards. You can edit/delete stored +pops, AND it's multi user friendly, so you and your family/friends can all use it to track their collection. + +I know it's ugly, but it's highly functional, and searching works well, but the mobile version (ha!) needs +to be done/started/helped. + +Just need PHP & MySQL/MariaDB and some know how to get this thing going. I forget how to add users :( diff --git a/collection.php b/collection.php new file mode 100644 index 0000000..2d1057f --- /dev/null +++ b/collection.php @@ -0,0 +1,34 @@ +'; + $fpcname = (isset($_POST['collection']) ? $_POST['collection'] : null); + $fpcname = mysqli_real_escape_string($con, $fpcname); + $sqlfpcname = "INSERT INTO funkopops.popcollection (popcollection) VALUES ('$fpcname')"; + if (!empty($fpcname)) { + if (!$result = $con->query($sqlfpcname)){ + die ('There was an error running the query [' . $con->error . ']'); + } + echo 'You have successfully entered ' . $fpcname . ' into the database!
'; + echo 'Refreshing page in 2 seconds to add another pop collection group.
'; + header("refresh:2;url=collection.php"); + } else { + echo ''; + echo ''; + echo '
Collection Name:
'; + echo '
'; + echo 'Here\'s the existing groups:

'; + } +} +include_once ('footer.php'); +?> \ No newline at end of file diff --git a/connect.php b/connect.php new file mode 100644 index 0000000..d4dcd02 --- /dev/null +++ b/connect.php @@ -0,0 +1,6 @@ + diff --git a/edit.php b/edit.php new file mode 100644 index 0000000..70b45d0 --- /dev/null +++ b/edit.php @@ -0,0 +1,89 @@ +'; + echo 'Date format is YYYY-MM-DD / 1977-06-07
'; + echo 'Please click HERE to try again'; + include_once ('footer.php'); + exit(); + } + $sqlupdate = "UPDATE `pops` SET `popno` = $fno, `popname` = '$fname', `popcollectionid` = $fpcid, `inserteddate` = '$fdate' WHERE `funkoid` = $fid AND `userid` = $userid"; + if (!$result = $con->query($sqlupdate)){ + die ('There was an error running the query [' . $con->error . ']'); + } + echo $fname . ' info successfully updated, returning to editor.'; + header("refresh:2;url=edit.php?id=$fid"); + include_once ('footer.php'); + exit(); + } else { + echo 'Editing data
'; + if (!$editid == "") { + $sqlfind = "SELECT * FROM (pops INNER JOIN popcollection ON pops.popcollectionid = popcollection.popcollectionid) WHERE `funkoid` = $editid AND `userid` = $userid"; + if (!$result = $con->query($sqlfind)){ + die ('There was an error running the query [' . $con->error . ']'); + } + echo '
'; + while ($row = $result->fetch_array()){ + $fid = $row['funkoid']; + $fuid = $row['userid']; + $fno = $row['popno']; + $fname = $row['popname']; + $fpcid = $row['popcollectionid']; + $fdate = $row['inserteddate']; + $fcollection = $row['popcollection']; + $_SESSION['popno'] = $fno; + $_SESSION['popname'] = $fname; + echo ''; + echo ''; + } + echo '
Pop NoPop NamePurchase DatePop Collection
'; + echo '
'; + echo ''; + echo '

'; + $sqlimage = "SELECT popimages.imageid, popimages.imagepath FROM popimages WHERE popimages.funkoid = $fid AND popimages.userid = $fuid"; + if (!$result3 = $con->query($sqlimage)){ + die ('There was an error running the query [' . $con->error . ']'); + } + if (mysqli_num_rows($result3) == 1) { + $row3 = mysqli_fetch_array($result3); + echo '' . $fname . '
'; + $_SESSION['imageid'] = $row3['imageid']; + $_SESSION['imagepath'] = $row3['imagepath']; + $_SESSION['image'] = "existing"; + } else { + echo ''; + $_SESSION['image'] = "default"; + } + echo '
'; + echo '


'; + } else { + echo 'Please select a Funko Pop to edit!'; + } + } + echo 'Retun to Funko Pop list
'; +} +include_once 'footer.php'; +?> \ No newline at end of file diff --git a/footer.php b/footer.php new file mode 100644 index 0000000..b1a0dbb --- /dev/null +++ b/footer.php @@ -0,0 +1,8 @@ + +
'; +} +?> + + \ No newline at end of file diff --git a/header.php b/header.php new file mode 100644 index 0000000..cf37d5a --- /dev/null +++ b/header.php @@ -0,0 +1,23 @@ + + + + +connect_errno){ + die ('Unable to connect to database [' . $db->connect_errno . ']'); +} +if (!$userid){ + echo 'Please login first'; + echo '
Username:
'; + echo 'Password:
'; + echo '
'; +} else { + echo '' . $pagetitle . '
'; + echo '(Home) (SEARCH) (Logout ' . $uname . ')

'; +} +?> \ No newline at end of file diff --git a/images/no-image-available.jpg b/images/no-image-available.jpg new file mode 100644 index 0000000000000000000000000000000000000000..626d6647286bb77d1413f09536a8aa72589092d1 GIT binary patch literal 10845 zcma)i1yr0r*XIo0;!t$ZBBi)H6e;fRw73_SBBh1mKKS5J+&aLZ1&X^3I%u)MonnQu z{J;0z_w1fMyZhz2Nq#5KP40bi^4#Pmd0cq>1t3tCSCR(+fdByT=>a^h0~+Q09Bcsq zB_&n>761T10q_7(0GLmR`6)U?p#8%J;Czbz1WgAk3r`CG01W_0#QY}(aP#tVKYPOL zPuTh?0`pP-tHwXI(DVOQJMjts6P~kT0SSQQ06G8*fEyqTkOC+IH35cz_dt7~8^90v z83>F70uzD2GT@UAz$ab)k)SOi{Dl53jfb22pOzk%0AB&9C@5I}-+=jVj^|jIm{`xA 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 { + die ('There was an error running the query: [' . $con->error . ']'); + } + } + } + echo 'You have successfully uploaded a new image.
'; + echo 'Redirecting back to editor.
'; + header("refresh:2;url=edit.php?id=$funkoid"); + include_once ('footer.php'); + exit(); + } else if ($uploadedimage == "existing") { + extract($_POST); + $UploadedFileName = $_FILES['uploadedfile']['name']; + $extension = end(explode(".", $UploadedFileName)); + if($UploadedFileName != '') { + $upload_directory = "images/"; //This is the folder which you created just now + $TargetPath=time()."_".$_SESSION['popno']."_".$_SESSION['popname']."_".$uname.".".$extension; + if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $upload_directory.$TargetPath)) { + $resized = $upload_directory.$TargetPath; + smart_resize_image ($upload_directory.$TargetPath, null, 250, 0, true, $resized, false, false, 100); + $insertfile = "UPDATE funkopops.popimages SET imagepath = ('$TargetPath') WHERE imageid = $imageid AND funkoid = $funkoid AND userid = $userid"; + if (!$addpath = $con->query($insertfile)) { + die ('There was an error running the query: [' . $con->error . ']'); + } + } + } + if (file_exists("images/$remimage")) { + unlink("images/$remimage"); + } else { + echo 'Image ' . $remimage . ' was NOT deleted.
'; + } + echo 'You have successfully updated the image.
'; + echo 'Redirecting back to editor.
'; + header("refresh:2;url=edit.php?id=$funkoid"); + include_once ('footer.php'); + exit(); + } else { + $fid = $funkoid; + echo '
'; + echo 'Filename: '; + echo ''; + echo '
'; + echo '
'; + } +} else { + echo 'Please login HERE before continuing.
'; +} +include_once ('footer.php'); +?> \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..8d55941 --- /dev/null +++ b/index.php @@ -0,0 +1,11 @@ +here

'; + echo 'Search for existing Funko Pop here

'; + echo 'List ALL Funko Pops here

'; + echo 'Add a new Funko Pop group here
'; +} +include_once ('footer.php'); +?> \ No newline at end of file diff --git a/list.php b/list.php new file mode 100644 index 0000000..f9bf8eb --- /dev/null +++ b/list.php @@ -0,0 +1,27 @@ +query($sql)){ + die ('There was an error running the query [' . $con->error . ']'); + } + $count = mysqli_query($con, $sqlcount); + $row3 = mysqli_fetch_array($count); + if ($row3[0] <> 1) { + echo 'You have ' . $row3[0] . ' Funko Pops!
Click the Pop # to edit the data
'; + } else { + echo 'You have ' . $row3[0] . ' Funko Pop - go buy some more, it\s lonely!
Click the Pop # to edit the data
'; + } + echo ''; + echo ''; + if (mysqli_num_rows($result) > 0) { + while ($row = $result->fetch_array()){ + echo ''; + } + } + echo '
Pop #Pop NameDate AddedPop Collection
' . $row['popno'] . '' . $row['popname'] . '' . $row['inserteddate'] . '' . $row['popcollection'] . '
'; +} +include_once ('footer.php'); +?> \ No newline at end of file diff --git a/login.php b/login.php new file mode 100644 index 0000000..278f9c9 --- /dev/null +++ b/login.php @@ -0,0 +1,37 @@ + + + + +Logging in + + +
+connect_errno > 0){ + die ('Unable to connect to database [' . $db->connect_errno . ']'); +} +$sqllogin = "SELECT * FROM users WHERE users.username = '$username' and passwd = '$password'"; +if ($result = $con->query($sqllogin)){ + $row_cnt = mysqli_num_rows($result); + if ($row_cnt > 0){ + while ($row = $result->fetch_array()){ + $uname = $row['username']; + $uid = $row['userid']; + $_SESSION['username'] = $uname; + $_SESSION['userid'] = $uid; + } + header("refresh:1;url=index.php"); + echo 'You have successfully logged in ...
Returning to index in a few seconds
'; + } else { + echo 'That was not a valid username or password!

'; + echo 'Please try again here
'; + } +} +include_once ('footer.php'); +?> \ No newline at end of file diff --git a/logout.php b/logout.php new file mode 100644 index 0000000..4c3a5d9 --- /dev/null +++ b/logout.php @@ -0,0 +1,19 @@ +You have been logged out ...
Returning to login screen in a few seconds'; +} else if (isset($_POST['logout'])){ + session_unset(); + session_destroy(); + header("refresh:2;url=index.php"); + echo '
You have been logged out ...
Returning to login screen in a few seconds
'; +} else { + echo '
Something went wrong, you haven\'t been logged out!

Please click HERE to try again
'; +} +include_once ('footer.php'); +?> \ No newline at end of file diff --git a/newfunko.php b/newfunko.php new file mode 100644 index 0000000..2200387 --- /dev/null +++ b/newfunko.php @@ -0,0 +1,51 @@ +'; + if ($insfunko == 1){ + $popno = mysqli_real_escape_string($con, $_POST['popno']); + $popname = mysqli_real_escape_string($con, $_POST['popname']); + $popdate = mysqli_real_escape_string($con, $_POST['todaysdate']); + $popcollectionid = mysqli_real_escape_string($con, $_POST['popcollectionid']); + list ($y, $m, $d) = explode('-', $popdate); + if (!checkdate($m, $d, $y)) { + echo 'Date is invalid ' . $popdate . '
'; + echo 'Date format is YYYY-MM-DD / 1977-06-07
'; + echo 'Please click HERE to try again'; + echo '

Return to home.'; + include_once ('footer.php'); + exit(); + } + $sqlfunkins = "INSERT INTO funkopops.pops (userid, popno, popname, popcollectionid, inserteddate) VALUES ($userid, $popno, '$popname', $popcollectionid, '$popdate')"; + if (!$funkoinsert = $con->query($sqlfunkins)){ + die ('There was an error running the query [' . $con->error . ']'); + } + echo 'You have successfully entered ' . $popname . ' into the database!
'; + echo 'Refreshing page in 2 seconds to add another pop to your collection!
'; + header("refresh:2;url=newfunko.php"); + } else { + echo ''; + echo ''; + echo ''; + $sqlpopcollection = "SELECT * FROM popcollection ORDER BY popcollection ASC"; + if (!$results = $con->query($sqlpopcollection)){ + die ('There was an error running the query [' . $con->error . ']'); + } + echo ''; + echo ''; + echo '
Pop Number:
Pop Name:
Pop Collection:
Date Purchased:
'; + } +} else { + echo 'Please login HERE before continuing.'; +} +include_once ('footer.php'); +?> \ No newline at end of file diff --git a/register.php b/register.php new file mode 100644 index 0000000..5118ae0 --- /dev/null +++ b/register.php @@ -0,0 +1,2 @@ +'; + $searchtype = (isset($_POST['stype']) ? $_POST['stype'] : null); + $searchtype = mysqli_real_escape_string($con, $searchtype); + $searchname = (isset($_POST['searchname']) ? $_POST['searchname'] : null); + $searchname = mysqli_real_escape_string($con, $searchname); + $searchcollection = (isset($_POST['collectionid']) ? $_POST['collectionid'] : null); + $searchcollection = mysqli_real_escape_string($con, $searchcollection); + if (!empty($searchname) || !empty($searchcollection)) { + if ($searchtype == "name") { + $sqlsearch = "SELECT * FROM (pops INNER JOIN popcollection ON pops.popcollectionid = popcollection.popcollectionid) WHERE `popname` LIKE '%$searchname%' AND `userid` = $userid ORDER BY popcollection.popcollection, pops.popno ASC"; + $sqlcount = "SELECT COUNT(*) as count FROM (pops INNER JOIN popcollection ON pops.popcollectionid = popcollection.popcollectionid) WHERE `popname` LIKE '%$searchname%' AND `userid` = $userid"; + } else if ($searchtype == "group") { + $sqlsearch = "SELECT * FROM (pops INNER JOIN popcollection ON pops.popcollectionid = popcollection.popcollectionid) WHERE `pops`.`popcollectionid` = $searchcollection AND `userid` = $userid ORDER BY popno ASC"; + $sqlcount = "SELECT COUNT(*) as count FROM (pops INNER JOIN popcollection ON pops.popcollectionid = popcollection.popcollectionid) WHERE `pops`.`popcollectionid` = $searchcollection AND `userid` = $userid"; + } else { + echo 'No search type defined, please try again!'; + include_once ('footer.php'); + exit(); + } + if (!$result = $con->query($sqlsearch)){ + die ('There was an error running the query [' . $con->error . ']'); + } + $count = mysqli_query($con, $sqlcount); + $row3 = mysqli_fetch_array($count); + if ($row3['count'] > 1) { + echo 'There are ' . $row3['count'] . ' Funko Pops in the search results
Click the Pop # to edit the data
'; + } else { + echo 'There is ' . $row3['count'] . ' Funko Pop in the search results
Click the Pop # to edit the data
'; + } + echo ''; + echo ''; + if (mysqli_num_rows($result) > 0) { + while ($row = $result->fetch_array()){ + echo ''; + } + } else { + echo 'No results found!
'; + } + echo '
Pop #Pop NameDate AddedPop Collection
' . $row['popno'] . '' . $row['popname'] . '' . $row['inserteddate'] . '' . $row['popcollection'] . '

Click here to search again.
'; + } else { + echo 'Please search for a Funko Pop name!
'; + echo '
Funko Pop name to search for:

'; + //echo 'Funko Pop number to search for:
'; + echo '


'; + $sqlfpc = "SELECT DISTINCT `popcollection`.`popcollectionid`, `popcollection`.`popcollection` FROM (popcollection INNER JOIN pops ON popcollection.popcollectionid = pops.popcollectionid) WHERE `pops`.`userid` = $userid ORDER BY popcollection.popcollection ASC"; + if (!$result2 = $con->query($sqlfpc)){ + die ('There was an error running the query [' . $con->error . ']'); + } + echo 'Or find all Funko Pops by collection:
'; + } +} +include_once ('footer.php'); +?> \ No newline at end of file diff --git a/smart_resize_image.function.php b/smart_resize_image.function.php new file mode 100644 index 0000000..e4b3a1b --- /dev/null +++ b/smart_resize_image.function.php @@ -0,0 +1,130 @@ += 0 && $transparency < $palletsize) { + $transparent_color = imagecolorsforindex($image, $transparency); + $transparency = imagecolorallocate($image_resized, $transparent_color['red'], $transparent_color['green'], $transparent_color['blue']); + imagefill($image_resized, 0, 0, $transparency); + imagecolortransparent($image_resized, $transparency); + } + elseif ($info[2] == IMAGETYPE_PNG) { + imagealphablending($image_resized, false); + $color = imagecolorallocatealpha($image_resized, 0, 0, 0, 127); + imagefill($image_resized, 0, 0, $color); + imagesavealpha($image_resized, true); + } + } + imagecopyresampled($image_resized, $image, 0, 0, $cropWidth, $cropHeight, $final_width, $final_height, $width_old - 2 * $cropWidth, $height_old - 2 * $cropHeight); + + + # Taking care of original, if needed + if ( $delete_original ) { + if ( $use_linux_commands ) exec('rm '.$file); + else @unlink($file); + } + + # Preparing a method of providing result + switch ( strtolower($output) ) { + case 'browser': + $mime = image_type_to_mime_type($info[2]); + header("Content-type: $mime"); + $output = NULL; + break; + case 'file': + $output = $file; + break; + case 'return': + return $image_resized; + break; + default: + break; + } + + # Writing image according to type to the output destination and image quality + switch ( $info[2] ) { + case IMAGETYPE_GIF: imagegif($image_resized, $output); break; + case IMAGETYPE_JPEG: imagejpeg($image_resized, $output, $quality); break; + case IMAGETYPE_PNG: + $quality = 9 - (int)((0.9*$quality)/10.0); + imagepng($image_resized, $output, $quality); + break; + default: return false; + } + return true; + } + ?> + \ No newline at end of file diff --git a/sql/db_popcollections_examples.sql b/sql/db_popcollections_examples.sql new file mode 100644 index 0000000..7609a1d --- /dev/null +++ b/sql/db_popcollections_examples.sql @@ -0,0 +1,3 @@ +/*Data for the table `popcollection` */ + +insert into `popcollection`(`popcollectionid`,`popcollection`) values (63,'2017 ECCC Exclusive'),(76,'Alien Covenant'),(22,'Aliens'),(17,'Animation'),(3,'Asia'),(72,'Avengers 2'),(64,'Baby Metal'),(13,'Back to the Future'),(60,'Batgirl'),(51,'Batman Arkham Asylum'),(50,'Batman Arkham Knight'),(52,'Batman Classic Series'),(43,'Batman the Animated Series'),(49,'Batman The Dark Knight Returns'),(34,'Batman v Superman'),(38,'Beauty and the Beast'),(44,'Big Hero 6'),(78,'Build-A-Bear'),(71,'Captain America Civil War'),(65,'Captain Underpants'),(24,'Clueless'),(26,'Custom'),(75,'DC Comics'),(40,'DC Comics Bombshells'),(35,'DC Super Heroes'),(61,'DC\'s Legends of Tomorrow'),(31,'Deadpool'),(37,'Disney'),(70,'Doctor Strange'),(21,'DOOM'),(81,'Elf'),(28,'Elvira Mistress of the Dark'),(6,'Ferris Bueller\'s Day Off'),(66,'Five Nights at Freddy\'s'),(25,'Football'),(4,'Game of Thrones'),(20,'Games'),(59,'Godzilla'),(53,'Gotham Before The Legend'),(15,'Guardians of the Galaxy'),(47,'Guardians of the Galaxy Vol. 2'),(30,'Guns n Roses'),(32,'Heroes'),(56,'Inside Out'),(48,'Jay and Silent Bob Strike Back'),(79,'Justice League'),(46,'Kill Bill'),(58,'Kong Skull Island'),(16,'Labyrinth'),(41,'Lord of the Rings'),(14,'Marvel'),(77,'Marvel Spider-Man Homecoming'),(11,'Mean Girls'),(36,'Mighty Morphin Power Rangers'),(57,'Moana'),(62,'Momotaro'),(55,'Monster High'),(1,'Movies'),(10,'Once Upon a Time'),(5,'Orange is the New Black'),(67,'Power Rangers'),(74,'Purple Haze Properties'),(29,'Rocks'),(19,'Sesame Street'),(7,'Sixteen Candles'),(9,'Star Wars'),(68,'Star Wars Rogue One'),(54,'Strawberry Shortcake'),(45,'Street Fighter'),(33,'Suicide Squad'),(42,'Tekken'),(2,'Television'),(23,'The Big Bang Theory'),(8,'The Breakfast Club'),(69,'The Flash'),(80,'The Joy of Painting'),(12,'The Karate Kid'),(18,'Voltron'),(27,'Winnie the Pooh'),(39,'Wonder Woman (Movie)'); \ No newline at end of file diff --git a/sql/db_popimages_data.sql b/sql/db_popimages_data.sql new file mode 100644 index 0000000..3c3802b --- /dev/null +++ b/sql/db_popimages_data.sql @@ -0,0 +1,3 @@ +/*Data for the table `popimages` */ + +insert into `popimages`(`imageid`,`funkoid`,`userid`,`imagepath`) values (1,0,0,'images/no-image-available.jpg'); \ No newline at end of file diff --git a/sql/db_structure_only.sql b/sql/db_structure_only.sql new file mode 100644 index 0000000..8ce5417 --- /dev/null +++ b/sql/db_structure_only.sql @@ -0,0 +1,41 @@ +/*Table structure for table `popcollection` */ + +CREATE TABLE `popcollection` ( + `popcollectionid` int(11) NOT NULL AUTO_INCREMENT, + `popcollection` varchar(40) DEFAULT NULL, + PRIMARY KEY (`popcollectionid`), + KEY `popcollection` (`popcollection`) +) ENGINE=InnoDB AUTO_INCREMENT=82 DEFAULT CHARSET=latin1; + +/*Table structure for table `popimages` */ + +CREATE TABLE `popimages` ( + `imageid` int(11) NOT NULL AUTO_INCREMENT, + `funkoid` int(11) DEFAULT NULL COMMENT 'the funko pop itself', + `userid` int(11) DEFAULT NULL COMMENT 'the user that uploaded the picture', + `imagepath` text COMMENT 'where the image is physically located', + PRIMARY KEY (`imageid`) +) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=latin1; + +/*Table structure for table `pops` */ + +CREATE TABLE `pops` ( + `funkoid` int(11) NOT NULL AUTO_INCREMENT, + `userid` int(11) DEFAULT NULL, + `popno` int(11) DEFAULT NULL, + `popname` varchar(200) DEFAULT NULL, + `popcollectionid` int(11) DEFAULT NULL COMMENT 'Game of Thrones, Voltron, TV, Movies, Asia, etc etc', + `inserteddate` date DEFAULT NULL, + PRIMARY KEY (`funkoid`), + KEY `popname` (`popname`) +) ENGINE=InnoDB AUTO_INCREMENT=297 DEFAULT CHARSET=latin1; + +/*Table structure for table `users` */ + +CREATE TABLE `users` ( + `userid` int(11) NOT NULL AUTO_INCREMENT, + `username` varchar(200) DEFAULT NULL, + `passwd` varchar(200) DEFAULT NULL, + `email` varchar(200) DEFAULT NULL, + PRIMARY KEY (`userid`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..f6798a8 --- /dev/null +++ b/style.css @@ -0,0 +1,52 @@ +body { background-color: #DDD; } + +.content { + background-color: #f5f5f5; + padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; + margin-top: 10px; margin-right: 10px; margin-bottom: 10px; margin-left: 10px; +} + +a.navlink:link { color: #003366; font-weight: bold; text-decoration: none; } +a.navlink:visited { color: #003366; font-weight: bold; text-decoration: none; } +a.navlink:hover { color: #CCCCCC; font-weight: bold; text-decoration: none; } + +td { + font-family: Tahoma; font-size: 13px; + vertical-align: center; +} + +.title { + font-size: 24px; font-weight: normal; color: #FFFFFF; + margin-top: 5px; margin-bottom: 5px; margin-left: 20px; + padding-top: 5px; padding-bottom: 5px; padding-left: 20px; +} + +ul, li{ + margin:0; + padding:0 0 0 15px; +} + +.column{ + float: left; + margin: 0 20px 0 0; +} + +fieldset { + padding: 1em; + font:80%/1 sans-serif; + } + +label { + float:left; + width:25%; + margin-right:0.5em; + padding-top:0.2em; + text-align:right; + font-weight:bold; + } + +img.resize { + width:220px; + height:300px; +} + \ No newline at end of file