root/dev/common/search.php

Revision 475, 4.4 KB (checked in by kovell, 13 years ago)

Improved PHP4 compatiblity. Named sessions. Cron feedfetch sets error reporting appropriately. Search is less restrictive by default.

Line 
1<?php
2$page = new Page('Search');
3
4$html .= "<form id=search action=\"?a=search\" method=post>";
5$html .= "<table class=kb-subtable><tr>";
6$html .= "<td>Type:</td><td>Text: (3 letters minimum)</td>";
7$html .= "</tr><tr>";
8$html .= "<td><select id=searchtype name=searchtype><option value=pilot>Pilot</option><option value=corp>Corporation</option><option value=alliance>Alliance</option><option value=system>System</option><option value=item>Items</option></select></td>";
9$html .= "<td><input id=searchphrase name=searchphrase type=text size=30/></td>";
10$html .= "<td><input type=submit name=submit value=Search></td>";
11$html .= "</tr></table>";
12$html .= "</form>";
13
14$searchphrase = slashfix($_REQUEST['searchphrase']);
15$searchphrase = preg_replace('/\*/', '%', $searchphrase);
16$searchphrase = trim($searchphrase);
17if ($searchphrase != "" && strlen($searchphrase) >= 3)
18{
19    switch ($_REQUEST['searchtype'])
20    {
21        case "pilot":
22            $sql = "select plt.plt_id, plt.plt_name, crp.crp_name
23                  from kb3_pilots plt, kb3_corps crp
24                 where plt.plt_name  like '%".$searchphrase."%'
25                   and plt.plt_crp_id = crp.crp_id
26                 order by plt.plt_name";
27            $header = "<td>Pilot</td><td>Corporation</td>";
28            break;
29        case "corp":
30            $sql = "select crp.crp_id, crp.crp_name, ali.all_name
31                  from kb3_corps crp, kb3_alliances ali
32                 where lower( crp.crp_name ) like lower( '%".$searchphrase."%' )
33                   and crp.crp_all_id = ali.all_id
34                 order by crp.crp_name";
35            $header = "<td>Corporation</td><td>Alliance</td>";
36            break;
37        case "alliance":
38            $sql = "select ali.all_id, ali.all_name
39                  from kb3_alliances ali
40                 where lower( ali.all_name ) like lower( '%".$searchphrase."%' )
41                 order by ali.all_name";
42            $header = "<td>Alliance</td><td></td>";
43            break;
44        case "system":
45            $sql = "select sys.sys_id, sys.sys_name
46                  from kb3_systems sys
47                 where lower( sys.sys_name ) like lower( '%".$searchphrase."%' )
48                 order by sys.sys_name";
49            $header = "<td>System</td><td></td>";
50            break;
51        case "item":
52            $sql = "select typeID, typeName from kb3_invtypes where typeName like ('%".$searchphrase."%')";
53            break;
54    }
55    $qry = new DBQuery();
56    if (!$qry->execute($sql))
57    {
58        die ($qry->getErrorMsg());
59    }
60
61    $html .= "<div class=block-header>Search results</div>";
62
63    if ($qry->recordCount() > 0)
64    {
65        $html .= "<table class=kb-table width=450 cellspacing=1>";
66        $html .= "<tr class=kb-table-header>".$header."</tr>";
67    }
68    else
69    {
70        $html .= "No results.";
71    }
72
73    while ($row = $qry->getRow())
74    {
75        $html .= "<tr class=kb-table-row-even>";
76        switch ($_REQUEST['searchtype'])
77        {
78            case "pilot":
79                $link = "?a=pilot_detail&plt_id=".$row['plt_id'];
80                $html .= "<td><a href=\"$link\">".$row['plt_name']."</a></td><td>".$row['crp_name']."</td>";
81                break;
82            case "corp":
83                $link = "?a=corp_detail&crp_id=".$row['crp_id'];
84                $html .= "<td><a href=\"$link\">".$row['crp_name']."</a></td><td>".$row['all_name']."</td>";
85                break;
86            case "alliance":
87                $link = "?a=alliance_detail&all_id=".$row['all_id'];
88                $html .= "<td><a href=\"$link\">".$row['all_name']."</a></td><td></td>";
89                break;
90            case "system":
91                $link = "?a=system_detail&sys_id=".$row['sys_id'];
92                $html .= "<td><a href=\"$link\">".$row['sys_name']."</a></td><td></td>";
93                break;
94            case 'item':
95                $link =  "?a=invtype&id=".$row['typeID'];
96                $html .= "<td><a href=\"$link\">".$row['typeName']."</a></td><td></td>";
97                break;
98        }
99        $html .= "</tr>";
100        if ($qry->recordCount() == 1)
101        {
102            // if there is only one entry we redirect the user directly
103            header("Location: $link");
104        }
105    }
106    if ($qry->recordCount() > 0)
107    {
108        $html .= "</table>";
109    }
110}
111
112$page->setContent($html);
113$page->generate();
114?>
Note: See TracBrowser for help on using the browser.