控制器
<?php
namespace app\controllers;
use Yii;
use yii\web\Controller;
use app\models\Login;
use SphinxClient;
class SphinxsearchController extends Controller
{
public $enableCsrfValidation = false;
public function actionSearchindex()
{
// echo 4;
$db=new Login;
$a=$db->find()->asArray()->all();
return $this->render('searchindex');
}
public function actionShou()
{
include'./sphinxapi.php';
//接值
$field=\yii::$app->request->post('field');
$zhi=\yii::$app->request->post('zhi');
// echo $zhi;die;
//实例化
$sphinx = new SphinxClient();
// print_r($sphinx);die;
$sphinx->SetServer('127.0.0.1',9312);
//将查询看作一个Sphinx内部查询语言的表达式
$sphinx->SetMatchMode (SPH_MATCH_EXTENDED2);
//@符号屏蔽错误 第一个参数中 $filed是字段名 $zhi是你要在这个字段中搜索的值 第二个参数是规则
$res=$sphinx->Query("@".$field.' '.$zhi,"*");
// print_r($res);
//array_keys是获取数组中的键(获取到的是一个数组) 然后将数组转换成字符串
$id=implode(',',array_keys($res['matches']));
$val=Login::find()->where("id in ($id)")->asArray()->All();
//print_r($val);die;
//高亮显示关键字
foreach ($val as $k =>$v)
{
$val[$k]['add']=str_replace($zhi,"<font color='red'>$zhi</font>",$v['add']);
$val[$k]['ip']=str_replace($zhi,"<font color='red'>$zhi</font>",$v['ip']);
}
echo json_encode($val);
}
}
?>
models
<?php
Namespace app\models;
use Yii;
use yii\base\Model;
use yii\db\ActiveRecord;
Class Login extends ActiveRecord{
//添加登陆信息
public function login_add($data){
$db = \YII::$app->db;
//返回的是受影响的条数
$res =$db->createCommand()->insert('login',$data)->execute();
return $res;
}
//查询全部的登陆信息
public function get_login_info(){
$db = \YII::$app->db;
$res = $db->createCommand('SELECT * FROM login')->queryall();
return $res;
}
}
?>
视图
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
<script src="jquery.12.mini.js"></script>
</head>
<body>
<center>
<h1>搜索</h1>
<div>
<!-- <form> -->
搜索字段:
<select id="field">
<option value="*">全部字段</option>
<option value="add">地区</option>
<option value="ip">ip</option>
</select>
<input type="text" name="search" id="zhi"/>
<input type="button" class="fun" value="搜索"/>
<!-- </form> -->
</div>
<br/>
<table style="width:400px;">
<tr id="lists">
<td>地区</td>
<td>iP</td>
</tr>
<tr class="contents"></tr>
</table>
</center>
</body>
</html>
<script>
$(".fun").click(function(){
var field = $("#field").val();
var zhi = $("#zhi").val();
var url="index.php?r=sphinxsearch/shou";
var send={field:field,zhi:zhi}
$.post(url,send,function(msg){
// alert(msg);
//将获取到的东西追加到表中
var data= eval("("+msg+")");
var tr='';
for(i in data)
{
tr+='<tr class="contents">';
tr+="<td>"+data[i].add+"</td>"
tr+="<td>"+data[i].ip+"</td>"
tr+='</tr>';
}
$(".contents").remove();
$("#lists").after(tr);
})
})
</script>