|
|
|
ช่วยทีครับ คือผม จะค้นหา ข้อมูล ในฐานข้อมูล โดยใช้ THSplitLib คือตอนนี้ผมค้นหาชื่อโครงงานได้แล้ว แต่ผม ต้องการที่จะค้นหาชื่อนักศึกษา ชื่ออาจารย์ที่ปรึกษา และปีที่จบอะครับ ช่วยดูโค้ดให้หน่อยนะครับ |
|
|
|
|
|
|
|
ชื่ออาจารย์อยู่อิกตารางนะครับ
Code (PHP)
<?php error_reporting(0); ?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>ค้นหา <?php echo $_GET['txtKeyword'] ?></title>
<?php include ("connect.php");?>
</head>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<script src="js/jquery-3.1.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="../src/jquery.jqplot.js"></script>
<script type="text/javascript" src="../src/plugins/jqplot.pieRenderer.js"></script>
<script type="text/javascript" src="../src/plugins/jqplot.donutRenderer.js"></script>
<link rel="stylesheet" type="text/css" href="../src/jquery.jqplot.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<body>
<!-- ตัดคำที่ค้นหา -->
<div class="container-fluid" style="background-color: #f2f2f2">
<form name="formSearch" action="showdata.php" method="get">
<div class="input-group" style="width: 40%;margin-top: 2%;margin-left: 5%;margin-bottom: 2%">
<input type="text" class="form-control input-lg" name="txtKeyword" id="txtKeyword" size="10" value="<?php echo $_GET['txtKeyword'] ?>">
<div class="input-group-btn">
<button class="btn btn-lg" type="submit"><i class="glyphicon glyphicon-search"></i></button>
</div>
</div>
<!--<button type="submit" class="btn-lg btn-info"><span class="glyphicon glyphicon-search"></span> ค้นหา </button> -->
</form>
</div>
<?php
$time_start = microtime(true);
$text_to_segment = trim($_GET['txtKeyword']);
//echo '<hr/>';
include(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'THSplitLib/segment.php');
$segment = new Segment();
$result = $segment->get_segment_array($text_to_segment);
//echo implode(' | ', $result); //แสดงการตัดคำ
function convert($size) {
$unit = array('b', 'kb', 'mb', 'gb', 'tb', 'pb');
return @round($size / pow(1024, ($i = floor(log($size, 1024)))), 2) . ' ' . $unit[$i];
}
$time_end = microtime(true);
$time = $time_end - $time_start;
/*echo '<br/><b>ประมวลผลใน: </b> '.round($time,4).' วินาที';
echo '<br/><b>รับประทานหน่วยความจำไป:</b> ' . convert(memory_get_usage());
echo '<br/><b>คำที่อาจจะตัดผิด:</b> ';
foreach($result as $row)
{
if (mb_strlen($row) > 12)
{
echo $row.'<br/>';
}
}*/ //แสดงข้อมูลรายละเอียด
?>
<!--จบการตัดคำ-->
<?php
if($result!=""){
$difresult=array("หาก","ไว้","แห่ง","ไป","ได้","โดย","แล้ว","และ","แรก","แบบ","แต่","เอง","เห็น","เลย","เริ่ม","เรา","เมื่อ","เพื่อ","เพราะ","เป็นการ","เป็น","เปิดเผย
","เนื่องจาก","เดียวกัน","เดียว","เช่น","เฉพาะ","เคย","เข้า","เขา","อีก","อาจ","อะไร","ออก","อย่าง","อยู่","อยาก","หลาย","หลังจาก
","หลัง","หรือ","หนึ่ง","ส่วน","ส่ง"," ");//อยากจะลบอะไรเพิ่มอีกก้อเพียงเพิ่ม Member ลงไป
$result = array_diff($result, $difresult); //คำสั่งหลักๆก็คือ array_diff นี่แหละคับ
sort($result);
$iCount = count($result);
$tempdrop="DELETE FROM temp";//ลบข้อมูลในตาราง
mysqli_query($con,$tempdrop);
$sql = "SELECT * from project where name_project like '%";
$temp="INSERT INTO temp (id,student_temp,project_temp,name_temp,branch_temp,professor_temp,years_temp)
SELECT id,student_id,name_project,name_student,branch_student,professor,years from project WHERE name_project like '%";
for ($i = 0 ; $i<$iCount; $i++) {
if ($iCount == 1){
$sql = $sql.$result[$i]."%'";
$temp = $temp.$result[$i]."%'";
}
else if($iCount > 1){
$sql = $sql.$result[$i]."%'";
$sql = $sql."OR name_project like '%";
$temp = $temp.$result[$i]."%'";
$temp = $temp."OR name_project like '%";
}
}
if($iCount==$iCount){
if($iCount!=1){
$sql = substr($sql,0,-23);
$temp = substr($temp,0,-23);
}
}
$query = mysqli_query($con,$sql);
$querytemp=mysqli_query($con,$temp);
while ($data = mysqli_fetch_array($query)) {
$dataid=$data["id"];
$x=0;
for($i=0;$i<=$iCount;$i++){
if(strstr($data["name_project"],$result[$i])){
$x++;
}
}
}
$sqltemp="SELECT * from temp Order By id_temp DESC";
$tmp = mysqli_query($con,$sqltemp); ?>
<div class="container-fluid">
<? echo '<b>คุณค้นหาคำว่า: </b>' . $text_to_segment . '<br/><br/><br/>'; ?>
<div class="row" >
<div class="col-sm-10" style="margin-left: 7%">
<table class="table">
<tr>
<th>รหัสนักศึกษา</th>
<th>ชื่อโครงงาน</th>
<th>ชื่อนักศึกษา</th>
<th>สาขาที่เรียน</th>
<th>อาจารย์ที่ปรึกษา</th>
<th>ปีที่จบ</th>
</tr>
<?php while ($datatemp = mysqli_fetch_assoc($tmp)) { ?>
<tr>
<td><?php echo $datatemp['student_temp'];?></td>
<td><?php echo $datatemp['project_temp'];?></td>
<td><?php echo $datatemp['name_temp'];?></td>
<td><?php echo $datatemp['branch_temp'];?></td>
<td><?php echo $datatemp['professor_temp'];?></td>
<td><?php echo $datatemp['years_temp'];?></td>
</tr>
</div>
<div class="col-sm-1" style="text-align: center;">
</div>
</div>
</div>
</div>
<?php } }?>
</div>
</div>
</div>
</body>
</html>
Tag : PHP
|
ประวัติการแก้ไข 2017-03-06 19:27:07 2017-03-06 23:56:20
|
|
|
|
|
Date :
2017-03-06 19:26:19 |
By :
ncs1234 |
View :
1486 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มีโครงสร้าง Table ให้ดูหรือเปล่าครับ
|
|
|
|
|
Date :
2017-03-07 09:33:51 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้เอามาใช้ค้นหาเขียนถูกป่าวครับ
Code (PHP)
SELECT *,b.name AS professor_name FROM project a LEFT JOIN professor b ON a.professor= b.id_professor
แล้ว join ตาราง professor มา join กับ temp เพื่อมาแสดง ข้อมูล ควรเขียนยังไง ครับ
professor
project
temp
|
ประวัติการแก้ไข 2017-03-07 12:34:40
|
|
|
|
Date :
2017-03-07 10:16:11 |
By :
ncs1234 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ต่อยอดจากบรรทัดที่ 77 - 81 ใส่ OR ต่อไป...
|
|
|
|
|
Date :
2017-03-07 15:58:54 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใส่อย่างนี้ใช่ป่าวครับ แต่มันก็ไม่ได้อะครับ
Code (PHP)
<?php error_reporting(0); ?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>ค้นหา <?php echo $_GET['txtKeyword'] ?></title>
<?php include ("connect.php");?>
</head>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<script src="js/jquery-3.1.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="../src/jquery.jqplot.js"></script>
<script type="text/javascript" src="../src/plugins/jqplot.pieRenderer.js"></script>
<script type="text/javascript" src="../src/plugins/jqplot.donutRenderer.js"></script>
<link rel="stylesheet" type="text/css" href="../src/jquery.jqplot.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<body>
<!-- ตัดคำที่ค้นหา -->
<div class="container-fluid" style="background-color: #f2f2f2">
<form name="formSearch" action="showdata.php" method="get">
<div class="input-group" style="width: 40%;margin-top: 2%;margin-left: 5%;margin-bottom: 2%">
<input type="text" class="form-control input-lg" name="txtKeyword" id="txtKeyword" size="10" value="<?php echo $_GET['txtKeyword'] ?>">
<div class="input-group-btn">
<button class="btn btn-lg" type="submit"><i class="glyphicon glyphicon-search"></i></button>
</div>
</div>
<!--<button type="submit" class="btn-lg btn-info"><span class="glyphicon glyphicon-search"></span> ค้นหา </button> -->
</form>
</div>
<?php
$time_start = microtime(true);
$text_to_segment = trim($_GET['txtKeyword']);
//echo '<hr/>';
include(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'THSplitLib/segment.php');
$segment = new Segment();
$result = $segment->get_segment_array($text_to_segment);
//echo implode(' | ', $result); //แสดงการตัดคำ
function convert($size) {
$unit = array('b', 'kb', 'mb', 'gb', 'tb', 'pb');
return @round($size / pow(1024, ($i = floor(log($size, 1024)))), 2) . ' ' . $unit[$i];
}
$time_end = microtime(true);
$time = $time_end - $time_start;
/*echo '<br/><b>ประมวลผลใน: </b> '.round($time,4).' วินาที';
echo '<br/><b>รับประทานหน่วยความจำไป:</b> ' . convert(memory_get_usage());
echo '<br/><b>คำที่อาจจะตัดผิด:</b> ';
foreach($result as $row)
{
if (mb_strlen($row) > 12)
{
echo $row.'<br/>';
}
}*/ //แสดงข้อมูลรายละเอียด
?>
<!--จบการตัดคำ-->
<?php
if($result!=""){
$difresult=array("หาก","ไว้","แห่ง","ไป","ได้","โดย","แล้ว","และ","แรก","แบบ","แต่","เอง","เห็น","เลย","เริ่ม","เรา","เมื่อ","เพื่อ","เพราะ","เป็นการ","เป็น","เปิดเผย
","เนื่องจาก","เดียวกัน","เดียว","เช่น","เฉพาะ","เคย","เข้า","เขา","อีก","อาจ","อะไร","ออก","อย่าง","อยู่","อยาก","หลาย","หลังจาก
","หลัง","หรือ","หนึ่ง","ส่วน","ส่ง"," ");//อยากจะลบอะไรเพิ่มอีกก้อเพียงเพิ่ม Member ลงไป
$result = array_diff($result, $difresult); //คำสั่งหลักๆก็คือ array_diff นี่แหละคับ
sort($result);
$iCount = count($result);
$tempdrop="DELETE FROM temp";//ลบข้อมูลในตาราง
mysqli_query($con,$tempdrop);
$sql = "SELECT * from project where name_project like '%";
$temp="INSERT INTO temp (id,student_temp,project_temp,name_temp,branch_temp,professor_temp,years_temp)
SELECT id,student_id,name_project,name_student,branch_student,professor,years from project WHERE name_student like '%";
for ($i = 0 ; $i<$iCount; $i++) {
if ($iCount == 1){
$sql = $sql.$result[$i]."%'";
$temp = $temp.$result[$i]."%'";
}
else if($iCount > 1){
$sql = $sql.$result[$i]."%'";
$sql = $sql."OR name_project like '% OR name_student like '%";
$temp = $temp.$result[$i]."%'";
$temp = $temp."OR name_project like '% OR name_student like '%";
}
}
if($iCount==$iCount){
if($iCount!=1){
$sql = substr($sql,0,-23);
$temp = substr($temp,0,-23);
}
}
$query = mysqli_query($con,$sql);
$querytemp=mysqli_query($con,$temp);
while ($data = mysqli_fetch_array($query)) {
$dataid=$data["id"];
$x=0;
for($i=0;$i<=$iCount;$i++){
if(strstr($data["name_project"],$result[$i])){
$x++;
}
}
}
$sqltemp="SELECT * from temp Order By id_temp DESC";
$tmp = mysqli_query($con,$sqltemp); ?>
<div class="container-fluid">
<? echo '<b>คุณค้นหาคำว่า: </b>' . $text_to_segment . '<br/><br/><br/>'; ?>
<div class="row" >
<div class="col-sm-10" style="margin-left: 7%">
<table class="table">
<tr>
<th>รหัสนักศึกษา</th>
<th>ชื่อโครงงาน</th>
<th>ชื่อนักศึกษา</th>
<th>สาขาที่เรียน</th>
<th>อาจารย์ที่ปรึกษา</th>
<th>ปีที่จบ</th>
</tr>
<?php while ($datatemp = mysqli_fetch_assoc($tmp)) { ?>
<tr>
<td><?php echo $datatemp['student_temp'];?></td>
<td><?php echo $datatemp['project_temp'];?></td>
<td><?php echo $datatemp['name_temp'];?></td>
<td><?php echo $datatemp['branch_temp'];?></td>
<td><?php echo $datatemp['professor_temp'];?></td>
<td><?php echo $datatemp['years_temp'];?></td>
</tr>
</div>
<div class="col-sm-1" style="text-align: center;">
</div>
</div>
</div>
</div>
<?php } }?>
</div>
</div>
</div>
</body>
</html>
|
ประวัติการแก้ไข 2017-03-07 18:22:08
|
|
|
|
Date :
2017-03-07 18:21:09 |
By :
ncs1234 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ช่วยทีครับ คือแก้ไม่ได้จริง ต้องเพิ่มเงื่อนไขในการค้นหายังไงครับ ไม่ได้จริงๆ
Code (PHP)
<?php error_reporting(0); ?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>ค้นหา <?php echo $_GET['txtKeyword'] ?></title>
<?php include ("connect.php");?>
</head>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<script src="js/jquery-3.1.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="../src/jquery.jqplot.js"></script>
<script type="text/javascript" src="../src/plugins/jqplot.pieRenderer.js"></script>
<script type="text/javascript" src="../src/plugins/jqplot.donutRenderer.js"></script>
<link rel="stylesheet" type="text/css" href="../src/jquery.jqplot.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<body>
<!-- ตัดคำที่ค้นหา -->
<div class="container-fluid" style="background-color: #f2f2f2">
<form name="formSearch" action="showdata.php" method="get">
<div class="input-group" style="width: 40%;margin-top: 2%;margin-left: 5%;margin-bottom: 2%">
<input type="text" class="form-control input-lg" name="txtKeyword" id="txtKeyword" size="10" value="<?php echo $_GET['txtKeyword'] ?>">
<div class="input-group-btn">
<button class="btn btn-lg" type="submit"><i class="glyphicon glyphicon-search"></i></button>
</div>
</div>
<!--<button type="submit" class="btn-lg btn-info"><span class="glyphicon glyphicon-search"></span> ค้นหา </button> -->
</form>
</div>
<?php
$time_start = microtime(true);
$text_to_segment = trim($_GET['txtKeyword']);
//echo '<hr/>';
include(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'THSplitLib/segment.php');
$segment = new Segment();
$result = $segment->get_segment_array($text_to_segment);
//echo implode(' | ', $result); //แสดงการตัดคำ
function convert($size) {
$unit = array('b', 'kb', 'mb', 'gb', 'tb', 'pb');
return @round($size / pow(1024, ($i = floor(log($size, 1024)))), 2) . ' ' . $unit[$i];
}
$time_end = microtime(true);
$time = $time_end - $time_start;
/*echo '<br/><b>ประมวลผลใน: </b> '.round($time,4).' วินาที';
echo '<br/><b>รับประทานหน่วยความจำไป:</b> ' . convert(memory_get_usage());
echo '<br/><b>คำที่อาจจะตัดผิด:</b> ';
foreach($result as $row)
{
if (mb_strlen($row) > 12)
{
echo $row.'<br/>';
}
}*/ //แสดงข้อมูลรายละเอียด
?>
<!--จบการตัดคำ-->
<?php
if($result!=""){
$difresult=array("หาก","ไว้","แห่ง","ไป","ได้","โดย","แล้ว","และ","แรก","แบบ","แต่","เอง","เห็น","เลย","เริ่ม","เรา","เมื่อ","เพื่อ","เพราะ","เป็นการ","เป็น","เปิดเผย
","เนื่องจาก","เดียวกัน","เดียว","เช่น","เฉพาะ","เคย","เข้า","เขา","อีก","อาจ","อะไร","ออก","อย่าง","อยู่","อยาก","หลาย","หลังจาก
","หลัง","หรือ","หนึ่ง","ส่วน","ส่ง"," ");//อยากจะลบอะไรเพิ่มอีกก้อเพียงเพิ่ม Member ลงไป
$result = array_diff($result, $difresult); //คำสั่งหลักๆก็คือ array_diff นี่แหละคับ
sort($result);
$iCount = count($result);
$tempdrop="DELETE FROM temp";//ลบข้อมูลในตาราง
mysqli_query($con,$tempdrop);
$sql = "SELECT *,b.name AS professor_name FROM project a LEFT JOIN professor b ON a.professor= b.id_professor where name_project like '%";
$temp="INSERT INTO temp (id,student_temp,project_temp,name_temp,branch_temp,professor_temp,years_temp)
SELECT id,student_id,name_project,name_student,branch_student,professor,years from project WHERE name_project like '%";
for ($i = 0 ; $i<$iCount; $i++) {
if ($iCount == 1){
$sql = $sql.$result[$i]."%'";
$temp = $temp.$result[$i]."%'";
}
else if($iCount > 1){
$sql = $sql.$result[$i]."%'";
$sql = $sql."OR name_project like '%";
$temp = $temp.$result[$i]."%'";
$temp = $temp."OR name_project like '%";
}
}
if($iCount==$iCount){
if($iCount!=1){
$sql = substr($sql,0,-23);
$temp = substr($temp,0,-23);
}
}
$querytemp=mysqli_query($con,$temp);
$sqltemp="SELECT *,b.name AS professor_name FROM temp a LEFT JOIN professor b ON a.professor_temp= b.id_professor order by a.id_temp";
$tmp = mysqli_query($con,$sqltemp); ?>
<div class="container-fluid">
<? echo '<b>คุณค้นหาคำว่า: </b>' . $text_to_segment . '<br/><br/><br/>'; ?>
<div class="row" >
<div class="col-sm-10" style="margin-left: 7%">
<table class="table">
<tr>
<th>รหัสนักศึกษา</th>
<th>ชื่อโครงงาน</th>
<th>ชื่อนักศึกษา</th>
<th>สาขาที่เรียน</th>
<th>อาจารย์ที่ปรึกษา</th>
<th>ปีที่จบ</th>
</tr>
<?php while ($datatemp = mysqli_fetch_assoc($tmp)) { ?>
<tr>
<td><?php echo $datatemp['student_temp'];?></td>
<td><?php echo $datatemp['project_temp'];?></td>
<td><?php echo $datatemp['name_temp'];?></td>
<td><?php echo $datatemp['branch_temp'];?></td>
<td><?php echo $datatemp['professor_name'];?></td>
<td><?php echo $datatemp['years_temp'];?></td>
</tr>
</div>
<div class="col-sm-1" style="text-align: center;">
</div>
</div>
</div>
</div>
<?php } }?>
</div>
</div>
</div>
</body>
</html>
|
|
|
|
|
Date :
2017-03-08 02:59:18 |
By :
ncs1234 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้ phpmyadmin ให้เป็นประโยชน์ครับ ลองใช้การ search หลายเงื่อนไขจาก phpmyadmin
จากนั้นลองดูคิวรี่ที่โปรแกรมมันสร้างให้ จับมายึดโยงกับที่เราเขียน ดูว่าคิวรี่ที่ได้ OR เขาซ้อนกันแบบไหน LIKE เป็นแบบไหน
เงื่อนไขการทำงาน ลักษณะการเขียนงานแตกต่างกัน ส่วนตัวแก้ให้ไม่ได้หรอกครับ ได้แค่แนะนำ
|
|
|
|
|
Date :
2017-03-08 15:10:38 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|