Advertisement
daviestrachan

geocoding

Mar 19th, 2013
881
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.52 KB | None | 0 0
  1. require("dbinfo.php");
  2. //Connect to database
  3. $dbh = new PDO("mysql:host=$host;dbname=$database", $username, $password);
  4. $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  5. try {
  6.     //Prepare query
  7.     $name = "%".$company."%";//Wildcard for PDO paramerter
  8.     $countSql = "SELECT COUNT(*) FROM markers WHERE `name` LIKE ?";
  9.     $countStmt = $dbh->prepare($countSql);
  10.     // Assign parameter
  11.     $countStmt->bindParam(1,$name);
  12.     //Execute query
  13.     $countStmt->execute();  
  14.     // check the row count  
  15.     if ($countStmt->fetchColumn() == 0) { #1
  16.        echo "No row matched the query.";
  17.         $q =$address.','.$city.','.$post_code;//Add .',UK'; for UK but inserts a lat & lng even if no address or postcode
  18.         echo "\n";
  19.         $base_url = "http://maps.googleapis.com/maps/api/geocode/xml?address=";
  20.         $request_url = $base_url.urlencode($q)."&sensor=false";
  21.         $xml = simplexml_load_file($request_url) or die("url not loading");
  22.         if($xml->status=="OK"){#2
  23.            // Successful geocode
  24.             $lat = $xml->result->geometry->location->lat;
  25.             $lng = $xml->result->geometry->location->lng;
  26.             $flag = 1;
  27.         } #2
  28.        else if($xml->status=="ZERO_RESULTS"){#3
  29.             //Zero Results
  30.             $lat = 0;
  31.             $lng = 0;
  32.             $flag = 1;
  33.         }#3
  34.          else if($xml->status=="OVER_QUERY_LIMIT"){#4
  35.               echo "OVER_QUERY_LIMIT";
  36.               $flag = 0;
  37.              //Do something
  38.              
  39.          }#4
  40.          else if($xml->status=="REQUEST_DENIED"){#5
  41.               echo "REQUEST DENIED";
  42.               $flag = 0;
  43.              //Do something
  44.         }#5
  45.         else if($xml->status=="REQUEST_DENIED"){#6
  46.               echo "REQUEST DENIED";
  47.               $flag = 0;
  48.              //Do something
  49.         }#6
  50.  
  51.        
  52.          if($flag == 1){#7
  53.             $insertSql ="INSERT INTO markers (`name`, `address`, `lat`, `lng`, `type`, `link`) VALUES (?,?,?,?,?,?)";
  54.             $insertStmt = $dbh->prepare($insertSql);
  55.             // Assign parameter
  56.             $insertStmt->bindParam(1,$company);
  57.             $insertStmt->bindParam(2,$address);
  58.             $insertStmt->bindParam(3,$lat);
  59.             $insertStmt->bindParam(4,$lng);
  60.             $insertStmt->bindParam(5,$type);
  61.             $insertStmt->bindParam(6,$link);
  62.             //Execute query
  63.             $insertStmt->execute();
  64.         }#7
  65.        
  66.     } #1
  67.    else {#1
  68.    echo "Row matched the query.";  
  69.     } #1
  70.    
  71.    
  72.    
  73.    
  74.    
  75. }// End try
  76.  
  77.  
  78. catch(PDOException $e) {
  79.     echo "I'm sorry I'm afraid you can't do that.". $e->getMessage() ;// Remove or modify after testing
  80.     file_put_contents('PDOErrors.txt',date('[Y-m-d H:i:s]').", myFile.php, ". $e->getMessage()."\r\n", FILE_APPEND);  
  81.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement