diff search/search_locust_temple.php @ 0:b12c99b7c3f0

commit for previous development
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Mon, 19 Jan 2015 17:13:49 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/search/search_locust_temple.php	Mon Jan 19 17:13:49 2015 +0100
@@ -0,0 +1,164 @@
+<?php
+
+include_once('../interface/Lib_mb_utf8.php');
+include_once('../interface/config.php');
+include_once('search_function.php');
+/*
+set_time_limit(0);
+ini_set('memory_limit', '-1');
+
+$link_mysql = mysql_connect($mysql_server, $mysql_user, $mysql_password);
+mysql_query("SET NAMES utf8");
+
+if (!$link_mysql) {
+    die('Could not connect: ' . mysql_error());
+}
+
+$db_selected = mysql_select_db($mysql_database, $link_mysql);
+if (!$db_selected) {
+    die ('Can\'t use foo : ' . mysql_error());
+}
+function trimKeyword($keywords){
+	$token=strtok($keywords,",");
+	while($token!=false){
+		$token=trim($token);
+		$keywordArray[]=$token;
+		$token=strtok(",");
+	}
+	return $keywordArray;
+}
+
+function search($keywordArray){
+	$condition="";
+	foreach($keywordArray as $i=>$keyword){
+		if($i!=0){
+			$condition.=" OR ";
+		}
+		$condition.=" contents.content LIKE  '%".$keyword."%' ";
+	}
+	//$query="SELECT books.name AS book_name, books.level1, books.level2, books.period, contents.books_id, contents.line, contents.content FROM contents JOIN books ON contents.books_id = books.id WHERE MATCH (content) AGAINST ('蝗神廟' IN BOOLEAN MODE) ORDER BY contents.books_id, contents.line";
+
+	$query="SELECT books.name AS book_name, books.level1, books.level2, books.period, contents.books_id, contents.line, contents.content 
+                FROM contents
+                JOIN books ON contents.books_id = books.id
+                WHERE ".$condition."
+                ORDER BY contents.books_id, contents.line";
+                //WHERE contents.content LIKE  '%".$keyword."%'
+	$result = mysql_query($query);
+	//echo "result length: ".mysql_num_rows($result)."<br>";
+	//go through each page
+	while ($row = mysql_fetch_assoc($result)) {
+        	//find the sections that includes this page
+		$subQuery="SELECT id, name, start_page, end_page 
+			FROM sections
+			WHERE books_id=".$row['books_id']." AND start_page<=".$row['line']." AND end_page>=".$row['line'];
+		$subResult=mysql_query($subQuery);
+		$sectionArray=array();	
+		while($subRow=mysql_fetch_assoc($subResult)){
+			$sectionArray[]=$subRow;
+		}
+		$row['section']=$sectionArray;
+
+		//find the next page and concatenate
+		$subQuery="SELECT content
+			FROM contents
+			WHERE books_id=".$row['books_id']." AND line=".($row['line']+1);
+		$subResult=mysql_query($subQuery);
+		$subRow=mysql_fetch_assoc($subResult);
+		$row['content'].=$subRow['content'];
+		
+		$resultArray[]=$row;
+	}
+	return $resultArray;
+}
+
+function printTable($array,$keywordArray,$filename){
+	//var_dump($array);
+	//return;
+	$header='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+		<html>
+        	<head>
+                <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+                <link href="../search.css" type="text/css" rel="stylesheet"/>
+                <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
+                <script src="../search.js" charset="utf-8"></script>
+        	</head>
+        	<body>';
+	$keywordStr="";
+	foreach($keywordArray as $i=>$keyword){
+		if($i!=0){
+			$keywordStr.=", ";	
+		}
+		$keywordStr.=$keyword;
+	}
+	$fp=fopen("./search_results/".$filename.".html","w");
+	fwrite($fp,$header);
+	echo sizeof($array)." result(s) of \"".$keywordStr."\" ";
+	fwrite($fp,sizeof($array)." result(s) of \"".$keywordStr."\"<br><br>");
+	$str="<table>";
+	$str.="<tr>";
+	$str.="<td class='sequence'>#<td class='bookId'>book id<td class='bookName'>book name<td class='level1'>level1<td class='level2'>level2<td class='period'>period<td class='sectionName'>section info<td class='page'>page<td class='content'>content";
+	fwrite($fp,$str);
+	echo $str;
+	$i=1;
+	foreach($array as $row){
+		$str="<tr>";
+		$str.="<td>".$i;
+		$str.="<td>".$row['books_id'];
+		$str.="<td>".$row['book_name'];
+		$str.="<td>".$row['level1'];
+		$str.="<td>".$row['level2'];
+		$str.="<td>".$row['period'];
+		$str.="<td>";
+		fwrite($fp,$str);
+		echo $str;
+		foreach($row['section'] as $section){
+			$str="<div class='section'><a href='tagging_text.php?id=".$section['id']."' target='_blank'>".$section['name']."</a>p".$section['start_page']."-".$section['end_page']."</div>";
+			echo $str;
+			$str="<div class='section'><a href='../tagging_text.php?id=".$section['id']."' target='_blank'>".$section['name']."</a>p".$section['start_page']."-".$section['end_page']."</div>";
+			fwrite($fp,$str);
+		}
+		$str="<td>".$row['line'];
+		//$str.="<td>".$row['content'];
+		$str.="<td>".findLocustTempleDescription($row['content'],$keywordArray,0);
+		fwrite($fp,$str);
+		echo $str;
+		$i++;
+	}
+	
+	echo "</table>";
+	fwrite($fp,"</table></body></html>");
+	fclose($fp);
+}
+*/
+
+?>
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+		<link href="search.css" type="text/css" rel="stylesheet"/>
+		<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
+		<script src="search.js" charset="utf-8"></script>
+	</head>
+	<body>
+		<form action='search_locust_temple.php' method='POST'>
+			關鍵字: <input type="text" name="keyword"> (若要搜尋多筆關鍵字請用半型逗號,隔開)<br>
+			將結果輸出至: <input type="text" name="filename">.html<br>
+			<input type="submit" name="search" value="搜尋">
+		</form>
+		<br>
+		<div id="search_result">
+		<?php
+			if(isset($_POST['search']) && $_POST['keyword']!='' && $_POST['filename']!=''){
+				$keywordArray=trimKeyword($_POST['keyword']);
+				$array=search($keywordArray);
+				writeCsvFile($array,$_POST['filename']);
+				printTable($array,$keywordArray,$_POST['filename'],$LOCUST_TEMPLE);
+			}			
+		?>
+		</div>
+	</body>
+</html>
+