From 8dd32dc09b9d1f326b60aab53db66b52830c2b8b Mon Sep 17 00:00:00 2001
From: Brandon Rodriguez <brodriguez8774@gmail.com>
Date: Thu, 27 Oct 2016 13:06:21 -0400
Subject: [PATCH] Working ch11pr02

Just needs markup validation checking.
---
 chapter11/project2/browse-images.php          | 105 ++++++++----------
 .../includes/travel-left-rail.inc.php         |   2 +-
 2 files changed, 48 insertions(+), 59 deletions(-)

diff --git a/chapter11/project2/browse-images.php b/chapter11/project2/browse-images.php
index ba0d8e0..5c7f96d 100644
--- a/chapter11/project2/browse-images.php
+++ b/chapter11/project2/browse-images.php
@@ -10,7 +10,7 @@
 
   # Connect to DB.
   #ConnectViaMySQLi($host, $DBuser, $DBpassword, $database);
-  #global $pdo; 
+  global $pdo; 
   $pdo = ConnectViaPDO($host, $DBuser, $DBpassword, $database, $DBport);
 
 
@@ -38,14 +38,14 @@
 
   # Merge Countries and Image Details.
   # Only returns countries with valid image data.
-  $sql = "SELECT DISTINCT GeoCountries.CountryName
+  $sql = "SELECT DISTINCT GeoCountries.CountryName, GeoCountries.ISO
           FROM GeoCountries, TravelImageDetails
-          WHERE GeoCountries.FipsCountryCode = TravelImageDetails.CountryCodeISO;";
+          WHERE GeoCountries.ISO = TravelImageDetails.CountryCodeISO;";
   $sqlCountriesMatch = $pdo->query($sql);
 
-  $sql = "SELECT DISTINCT GeoCountries.CountryName, GeoCountries.ISONumeric
+  $sql = "SELECT DISTINCT GeoCountries.CountryName, GeoCountries.ISO
           FROM GeoCountries, TravelImageDetails
-          WHERE GeoCountries.FipsCountryCode = TravelImageDetails.CountryCodeISO;";
+          WHERE GeoCountries.ISO = TravelImageDetails.CountryCodeISO;";
   $sqlCountriesMatch2 = $pdo->query($sql);
 
   # Merge Cities and Image Details.
@@ -70,64 +70,53 @@
 
   
   # Returns filtered City/Country.
-  #global $sqlFilterMatch;
-  /*function GetDBFilterMatch() {
-  if ($_SERVER['REQUEST_METHOD'] == 'GET') {
-    if ( isset($_GET['city']) and $_GET['city'] > 0) {
-      if ( isset($_GET['country']) and $_GET['country'] > 0) {
-        # If Both City and Country filters are set.
-        $sql = "SELECT DISTINCT *
-            FROM GeoCountries, GeoCities, TravelImage, TravelImageDetails
-            WHERE GeoCountries.ISO = TravelImageDetails.CountryCodeISO AND
-            GeoCities.GeoNameID = TravelImageDetails.CityCode AND
-            TravelImage.ImageID = TravelImageDetails.ImageIDID AND
-            GeoCities.GeoNameID = " . $_GET['city'] . " AND
-            GeoCountries.ISONumeric = " . $_GET['country'] . ";";
-        global $sqlFilterMatch, $pdo;
-        $sqlFilterMatch = $pdo->query($sql);
-      } else {
-        # If only City filter is set.
-        $sql = "SELECT DISTINCT *
-            FROM GeoCountries, GeoCities, TravelImage, TravelImageDetails
-            WHERE GeoCountries.ISO = TravelImageDetails.CountryCodeISO AND
-            GeoCities.GeoNameID = TravelImageDetails.CityCode AND
-            TravelImage.ImageID = TravelImageDetails.ImageID AND
-            GeoCities.GeoNameID = " . $_GET['city'] . ";";
-            echo $sql;
-        global $sqlFilterMatch, $pdo;
-        $sqlFilterMatch = $pdo->query($sql);
-      }
+  global $sqlFilterMatch;
+  if ( isset($_GET['city']) and $_GET['city'] > 0) {
+    if ( isset($_GET['country']) and $_GET['country'] != '0') {
+      # If Both City and Country filters are set.
+      $sql = "SELECT DISTINCT *
+          FROM GeoCountries, GeoCities, TravelImage, TravelImageDetails
+          WHERE GeoCountries.ISO = TravelImageDetails.CountryCodeISO AND
+          GeoCities.GeoNameID = TravelImageDetails.CityCode AND
+          TravelImage.ImageID = TravelImageDetails.ImageID AND
+          GeoCities.GeoNameID = " . $_GET['city'] . " AND
+          GeoCountries.ISO = '" . $_GET['country'] . "';";
+      global $sqlFilterMatch, $pdo;
+      $sqlFilterMatch = $pdo->query($sql);
     } else {
-      if ( isset($_GET['country']) and $_GET['country'] > 0) {
-        # If only Country filter is set.
-        $sql = "SELECT DISTINCT *
-            FROM GeoCountries, GeoCities, TravelImage, TravelImageDetails
-            WHERE GeoCountries.ISO = TravelImageDetails.CountryCodeISO AND
-            GeoCities.GeoNameID = TravelImageDetails.CityCode AND
-            TravelImage.ImageID = TravelImageDetails.ImageID AND
-            GeoCountries.ISONumeric = " . $_GET['country'] . ";";
-        global $sqlFilterMatch, $pdo;
-        $sqlFilterMatch = $pdo->query($sql);
-      }
+      # If only City filter is set.
+      $sql = "SELECT DISTINCT *
+          FROM GeoCountries, GeoCities, TravelImage, TravelImageDetails
+          WHERE GeoCountries.ISO = TravelImageDetails.CountryCodeISO AND
+          GeoCities.GeoNameID = TravelImageDetails.CityCode AND
+          TravelImage.ImageID = TravelImageDetails.ImageID AND
+          GeoCities.GeoNameID = " . $_GET['city'] . ";";
+      global $sqlFilterMatch, $pdo;
+      $sqlFilterMatch = $pdo->query($sql);
     }
   } else {
-    # If neither City or Country filters are set.
-    $sql = "SELECT DISTINCT *
-      FROM GeoCountries, GeoCities, TravelImage, TravelImageDetails
-      WHERE GeoCountries.ISO = TravelImageDetails.CountryCodeISO AND
-      GeoCities.GeoNameID = TravelImageDetails.CityCode AND
-      TravelImage.ImageID = TravelImageDetails.ImageID";
-    global $sqlFilterMatch, $pdo;
-    $sqlFilterMatch = $pdo->query($sql);
+    if ( isset($_GET['country'])  and $_GET['country'] != '0') {
+      # If only Country filter is set.
+      $sql = "SELECT DISTINCT *
+          FROM GeoCountries, GeoCities, TravelImage, TravelImageDetails
+          WHERE GeoCountries.ISO = TravelImageDetails.CountryCodeISO AND
+          GeoCities.GeoNameID = TravelImageDetails.CityCode AND
+          TravelImage.ImageID = TravelImageDetails.ImageID AND
+          GeoCountries.ISO = '" . $_GET['country'] . "';";
+      global $sqlFilterMatch, $pdo;
+      $sqlFilterMatch = $pdo->query($sql);
+    } else {
+      # If neither City or Country filters are set.
+      $sql = "SELECT DISTINCT *
+        FROM GeoCountries, GeoCities, TravelImage, TravelImageDetails
+        WHERE GeoCountries.ISO = TravelImageDetails.CountryCodeISO AND
+        GeoCities.GeoNameID = TravelImageDetails.CityCode AND
+        TravelImage.ImageID = TravelImageDetails.ImageID";
+      global $sqlFilterMatch, $pdo;
+      $sqlFilterMatch = $pdo->query($sql);
+    }
   }
-  }*/
 
-  $sql = "SELECT DISTINCT *
-      FROM GeoCountries, GeoCities, TravelImage, TravelImageDetails
-      WHERE GeoCountries.ISO = TravelImageDetails.CountryCodeISO AND
-      GeoCities.GeoNameID = TravelImageDetails.CityCode AND
-      TravelImage.ImageID = TravelImageDetails.ImageID;";
-  $sqlFilterMatch = $pdo->query($sql);
 
 ?>
 
diff --git a/chapter11/project2/includes/travel-left-rail.inc.php b/chapter11/project2/includes/travel-left-rail.inc.php
index 19b581d..d86c542 100644
--- a/chapter11/project2/includes/travel-left-rail.inc.php
+++ b/chapter11/project2/includes/travel-left-rail.inc.php
@@ -33,7 +33,7 @@
             <?php
               if ($sqlCountriesMatch) {
                 while ($row = $sqlCountriesMatch->fetch()) {
-                  echo "<li><a href=#>" . $row['CountryName'] . "</a></li>";
+                  echo "<li><a href='browse-images.php?country=" . $row['ISO'] . "'>" . $row['CountryName'] . "</a></li>";
                 }
               } else {
                 echo "<li>No Countries to display.</li>";
-- 
GitLab