category breakdown
[contractdashboard.git] / search.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
 
/*
  search ABNs
  search agency name
  search categories
  search supplier names
  --search supplier postcodes/suburbs/cities--
  search CN number
  search description full text
 */
include('./lib/common.inc.php');
if ($_REQUEST['searchID']) {
    $searchIDParts = explode("-", $_REQUEST['searchID']);
    $type = array_shift($searchIDParts);
    $host = $_SERVER['HTTP_HOST'];
    $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
 
    if ($type == "agency") {
        header("Location: http://$host$uri/displayAgency.php?agency=" . implode("-", $searchIDParts));
    }
    if ($type == "supplier") {
        header("Location: http://$host$uri/displaySupplier.php?supplier=" . implode("-", $searchIDParts));
    }
        if ($type == "cnid") {
        header("Location: http://$host$uri/displayContract.php?CNID=" . implode("-", $searchIDParts));
    }
    exit;
} else {
    include_header("Search Results");
/*// get a select query instance
$query = $solr_client->createSelect();
 
// set a query (all prices starting from 12)
$query->setQuery($_REQUEST['searchKeyword']);
 
// set start and rows param (comparable to SQL limit) using fluent interface
$query->setStart(0)->setRows(100);
 
// set fields to fetch (this overrides the default setting 'all fields')
$query->setFields(array('id','description','value','agencyName','contractStart','supplierName', 'score'));
 
// sort the results by price ascending
//$query->addSort('price', $query::SORT_ASC);
 
// this executes the query and returns the result
$resultset = $solr_client->select($query);
 
// display the total number of documents found by solr
echo 'Found '.$resultset->getNumFound(). ' results. <table>';
 
foreach ($resultset as $row) {
    foreach ($query->fetchAll() as $row) {
setlocale(LC_MONETARY, 'en_US');
        $value = number_format(doubleval($row['value'][0]), 2);
        echo ("<tr>
    <td><a href=\"displayContract.php?CNID={$row['id']}\">{$row['id']}</a></td>
    <td><b>{$row['description'][0]}</b></a></td>
    <td>\$$value</td><td>{$row['agencyName'][0]}</td>
    <td>{$row['contractStart'][0]}</td>
    <td>{$row['supplierName'][0]}</td>
    </tr>");
 
*/
$keyword = $_REQUEST['searchKeyword'];
  $query = 'SELECT "CNID", "description", "value", "agencyName", "category",
    "contractStart", "supplierName"
    FROM contractnotice
    WHERE ' .$yearQ . ' to_tsvector(\'english\', description) @@ plainto_tsquery(\'english\', :keyword) and "childCN" is null
    ORDER BY "value" DESC limit 1000';
    $query = $conn->prepare($query);
    $query->bindParam(":keyword", $keyword);
    $query->execute();
    databaseError($conn->errorInfo());
if ($query->rowCount() > 999) {
// if 1000 records warn too many results
print "<b> More than 1000 results found so only first 1000 shown. Please filter by year or keyword to see all results </b>";
}
echo '<table>';
    foreach ($query->fetchAll() as $row) {
//print_r($row);
setlocale(LC_MONETARY, 'en_US');
        $value = number_format($row['value'], 2);
        echo ("<tr>
    <td><a href=\"displayContract.php?CNID={$row['CNID']}\">{$row['CNID']}</a></td>
    <td><b>{$row['description']}</b></td>
    <td>\$$value</td><td>{$row['agencyName']}</td>
    <td>{$row['contractStart']}</td>
    <td>{$row['supplierName']}</td>
    </tr>");
}
echo "</table>";
 
    include_footer();
}
?>