diff --git a/chapter11/project2/browse-images.php b/chapter11/project2/browse-images.php index ba0d8e0040eac8b0a0c40ca66a850e06b3abd6a3..5c7f96d904edaacfebe3657d55d30985e2ceba25 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 19b581d8a0df1e15e3e29d9a6720e8f0a56ec15f..d86c5428c045cc202dd187b51de8aca6db6fbd67 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>";