--- a/search_autosuggest.php +++ b/search_autosuggest.php @@ -1,62 +1,87 @@ prepare($query); + $supplierName = $input . '%'; + $query->bindParam(":supplierName", $supplierName); + $query->execute(); + databaseError($conn->errorInfo()); + foreach ($query->fetchAll() as $row) { + $count++; + $aResults[] = array( + "id" => "supplier-" . $row[1] . '-' . $row[0], + "value" => htmlspecialchars($row[0]), + "info" => htmlspecialchars("Supplier - " . $row['count'] . " records") + ); + } + $query = 'SELECT MAX("agencyName"), count(*) as count +FROM contractnotice +WHERE "agencyName" ILIKE :agencyName +GROUP BY "agencyName" ORDER BY count DESC -LIMIT 4; -"; - $result = mysql_query($query); - while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { - $count++; - $aResults[] = array( - "id" => "supplier-".$row['id'], - "value" => htmlspecialchars($row['value']) , - "info" => htmlspecialchars("Supplier - ". $row['count']." records") - ); - } - $query = "SELECT agencyName as info, agencyName as id, agencyName as value, count(*) as count -FROM `contractnotice` -WHERE agencyName LIKE '$input%' -GROUP BY agencyName -ORDER BY count DESC -LIMIT 4;"; - $result = mysql_query($query); - while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { - $count++; - $aResults[] = array( - "id" => "agency-".$row['id'], - "value" => htmlspecialchars($row['value']) , - "info" => htmlspecialchars("Government Agency - ". $row['count']." records") - ); - } +LIMIT 4;'; + $query = $conn->prepare($query); + $agencyName = $input . '%'; + $query->bindParam(":agencyName", $agencyName); + $query->execute(); + databaseError($conn->errorInfo()); + foreach ($query->fetchAll() as $row) { + $count++; + $aResults[] = array( + "id" => "agency-" . $row[0], + "value" => htmlspecialchars($row[0]), + "info" => htmlspecialchars("Government Agency - " . $row['count'] . " records") + ); + } + $query = "SELECT \"CNID\", description, value FROM contractnotice +WHERE to_tsvector('english', description) @@ plainto_tsquery('english', :input)"; + $query = $conn->prepare($query); + $agencyName = $input . '%'; + $query->bindParam(":input", $input); + $query->execute(); + databaseError($conn->errorInfo()); + foreach ($query->fetchAll() as $row) { + $count++; + $aResults[] = array( + "id" => "cnid-" . $row[0], + "value" => htmlspecialchars($row['description']), + "info" => htmlspecialchars("Contract Notice - Value ".$row['value']) + ); + } } header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Pragma: no-cache"); // HTTP/1.0 if (isset($_REQUEST['json'])) { - header("Content-Type: application/json"); - echo "{\"results\": ["; - $arr = array(); - for ($i = 0;$i < count($aResults);$i++) { - $arr[] = "{\"id\": \"" . $aResults[$i]['id'] . "\", \"value\": \"" . $aResults[$i]['value'] . "\", \"info\": \"\"}"; - } - echo implode(", ", $arr); - echo "]}"; + header("Content-Type: application/json"); + echo "{\"results\": ["; + $arr = array(); + for ($i = 0; $i < count($aResults); $i++) { + $arr[] = "{\"id\": \"" . $aResults[$i]['id'] . "\", \"value\": \"" . $aResults[$i]['value'] . "\", \"info\": \"\"}"; + } + echo implode(", ", $arr); + echo "]}"; } else { - header("Content-Type: text/xml"); - echo ""; - for ($i = 0;$i < count($aResults);$i++) { - echo "" . $aResults[$i]['value'] . ""; - } - echo ""; + header("Content-Type: text/xml"); + echo ""; + for ($i = 0; $i < count($aResults); $i++) { + echo "" . $aResults[$i]['value'] . ""; + } + echo ""; } ?> +