From e362e8beb12b18b2ef1988770128fbdaec9e265d Mon Sep 17 00:00:00 2001 From: Stephan Poehlsen Date: Wed, 23 Nov 2005 02:25:01 +0000 Subject: erste Version vom Webinterface git-svn-id: file:///home/lennart/svn/public/sse/trunk@34 5fbabb74-0606-0410-a5e4-b5cc6a42724e --- www/index.php | 210 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 www/index.php (limited to 'www/index.php') diff --git a/www/index.php b/www/index.php new file mode 100644 index 0000000..235266c --- /dev/null +++ b/www/index.php @@ -0,0 +1,210 @@ + 100) $t = 100; + if ($t > 0) $num = $t; +} + +// start with result XXX +$start = 0; +if (isset($_REQUEST['start'])) { + $t = intval($_REQUEST['start']); + if ($t > 0) $start = $t; +} + + + +////////////////////////////////////////////////////////////////////////// +// create form fields + +$title = 'Source Search Engine'.($q ? ' - '.htmlentities($q) : ''); + +$ME = $_SERVER['PHP_SELF']; +$escaped_q = htmlentities($q); +$subword_checked = ($subword ? ' checked="checked" ' : ''); +$case_checked = ($case ? ' checked="checked" ' : ''); +$hidden_form = ($num != $num_default ? '' : ''); + +// prettiness hack +$ME = preg_replace('/index\.php$/', '', $ME); + +echo << + + + +$title + + + +
+
$hidden_form +

+

+
+
+ +ECHOFORM; + + + +////////////////////////////////////////////////////////////////////////// +// create sql query + +$sql = ''; +while ($q) { + + $s = split_q($q); + + if (!count($s)) { + break; + } + + if (count($s) == 1) { + $where = ($subword + ? " w.text LIKE '".db_escape($s[0])."%' " + : " w.text='".db_escape($s[0])."' AND w.type='word' " + ); + } else { + $where_parts = array(); + foreach ($s as $e) { + $where_parts[] = ($subword + ? "w.text LIKE '".db_escape($e)."%'" + : "w.text='".db_escape($e)."'"); + } + + $where = " (".implode(' OR ', $where_parts).") ". + ($subword ? '' : " AND w.type='word' "); + } + + + $sql = "SELECT COUNT(*)/COUNT(DISTINCT pr.id) AS keywords_cnt, ". + " SUM(w.cnt)/COUNT(DISTINCT pr.id) AS cnt, " . + " f.path, f.language_id, pr.id AS prid, pr.name AS package_name ". + " FROM word AS w, file AS f, package AS p, provider_record AS pr ". + " WHERE p.id=pr.package_id AND ".$where. + " AND w.file_id=f.id AND f.package_id=p.id ". + " AND f.crawler_id=w.crawler_id AND f.crawler_id=p.crawler_id ". + " GROUP BY f.crawler_id, f.id ". + " ORDER BY w.cnt DESC "; + + break; +} + + + + +////////////////////////////////////////////////////////////////////////// +// query DB + +$total = 0; +while (isset($sql) and $sql) { + + db_connect(); + + // use LIMIT ==> two queries: 1. total count, 2. results + // or mysql query cache ==> one query (dump data) + + $res = mysql_query($sql); + if ($res === false) { + echo('

'.mysql_errno().': '.mysql_error()."
\n".$sql."

\n"); + break; + } + $total = mysql_num_rows($res); + break; +} + + +$max_page = max(1, ceil($total/$num)); +$max_start = ($max_page-1)*$num; + +// behind last result page +if ($start > $max_start) $start = $max_start; + +// start not aligned +//$start = floor($start/$num)*$num; + + + + + +////////////////////////////////////////////////////////////////////////// +// show results + +if ($total) { + + echo('

Results: '.$total."

\n". + '\n"); +} + +////////////////////////////////////////////////////////////////////////// +// links +if ($max_page > 1) { + + $l = $ME.'?q='.urlencode($q). + ($case ? '&case=1' : ''). + ($subword ? '&subword=1' : ''). + ($num != $num_default ? '&num='.$num : ''). + '&start='; + + echo('\n"); + +} + + + + +echo("\n"); +?> \ No newline at end of file -- cgit