php搜索
A. php站内搜索怎么做
进入php源程序目录中的ext目录中,这里存放着各个扩展模块的源代码,选择你需要的模块,比如curl模块:cd curl执行phpize生成编译文件!
phpize在PHP安装目录的bin目录/usr/local/php5/bin/phpize运行时,
可能会报错:Cannot find autoconf. Please check your autoconf installation andthe $PHP_AUTOCONFenvironment variable is set correctly and then rerun thisscript.,需要安装autoconf:yum install autoconf(RedHat或者CentOS)、apt-get installautoconf(Ubuntu Linux)!
执行/usr/local/php5/bin/php -v这个命令时,php会去检查配置文件是否正确,
如果有配置错误,这里会报错,可以根据错误信息去排查!
B. 如何在php网页中加入搜索框
把文本框的值传进来,然后利用sql语句中的like模糊查询。
如 sql="select * from news where title like '%"&request("title")&"%'"
楼主在查询的时候还要注意过滤空格和单引号等。。
下面这文章是介绍ASP做查询功能,楼主可以看一下。
详见:
面是库中URLINDEX表:URL和Keywords字段分别添加了索引.
URL 文本 (索引:有(无重复))
Title 文本
Description 文本
Summary 文本
Keywords 文本(索引:有(无重复))
p
<HTML><HEAD><TITLE>简单搜索引擎</TITLE></HEAD>
<BODY BGCOLOR=#ffffff MARGINWIDTH="0" MARGINHEIGHT="0"
LEFTMARGIN=0 TOPMARGIN=0>
<FORM METHOD="po...
C. PHP如何实现模糊搜索
mysql支持自然语言的全文搜索
对于字段的要求:
只能是CHAR, VARCHAR, 或 TEXT 类型的字段
表类型是MyISAM在表建好,并导入数据后,建立一个fulltext index(索引)
用法:
select 字段1,字段2,字段3, MATCH(要匹配的字段名) AGAINST('keyword') as score from table having score>0命中的每一行都会有个分数,分数越大表示结果越接近keyword,分数越低的就是越模糊的结果
D. php程序中的搜索功能
首先处理复选框<input name="qzz" type="checkbox" value="qzz" />
不能全部的value="qzz",否则同一个值就没法区分了,因此整理一下例如用数字表示:
<input name="qzz" type="checkbox" value="1" /> 去除杂质
<input name="qzz" type="checkbox" value="2" /> 分级
<input name="qzz" type="checkbox" value="3" /> 过滤
……
一点这些值要能CP表中的mudi对应,比如mudi的表的值是这样的
a 表示 去除杂质
b 表示 分级
c 表示 过滤
……
那么在写PHP时就可以这样处理
$mudiArray=$_POST['qzz'];
//当然我不input的设置和数据库设置一致的话,就可以不用下面的这个转化了
//页面input和数据字段值之间的转化
foreach($mudiArray as $key=>$value){
switch($value) {
case '1':
$mudiArray[$key]='a';
case '2':
$mudiArray[$key]='b';
case '3':
$mudiArray[$key]='c';
……
}
}
具体SQL:
$mudis = "'" . implode("','", $mudiArray). "'";
$sql = "select * from CP where mudi in(" .$mudis .")";
E. PHP或者搜索关键字的问题
还是直接写 like %keyword1% or like %keyword2% or like %keyword3% 这样吧
F. 关于搜索功能那个php代码,能再详细点吗
数据库(mysql):一个数据库(search),库里面一个表(title),表里面一个字段(name).
PHP页面:两个页面(index.php
search.php)
第一步.创建数据库.(目前大家应该都是用的phpmyadmin来操作数据库的吧?)
建立一个数据库.
第二步.建表
在刚建立的search数据库里插入一个名字为title的表.建表时让选插入几个字段.写1就可以了.
第三步.建字段
插入的字段命名为name,长度值20就可以了.
—–数据库部分已经做完,接下来是网页部分—–
第四步.建立两个页面
建立两个文件:index.php和search.php可以使用记事本等文本工具直接建立.我使用的工具是Dreamweaver(方便嘛.呵呵).
第五步.index.php的页面制作.
这个页面是用来传递你搜索的关键字的.代码如下:
<form method=”post”
action=”search.php”
name=”search”>
<input name=”search” type=”text” value=”"
size=”15″> <input type=”submit”
value=”Search”>
</form>
这段代码是建立一个FORM表单.专门用来提交数据的.
第一行是FORM表单的开始.它的传递方式是post,传递到search.php这个页面.表单名为name.
第二行是文本域和提交按钮.文本域命名为search,按钮默认就可以了.
第三行是FORM表单的结束语句.
第五步.search.php的页面制作.
这个页面很关键.因为他是获取index页面传递过来的值,然后导出搜索的数据.
首先要绑定你建立的search数据库,我用的DW生成的.
上一个页面传送的文本域是search.所以,这里需要建立一个search变量.来接收你输入的关键词.用以下语句定义变量:
<?php
$searchs = $_POST['search'];
?>
然后建立一个记录集,选择高级.SQL语句中填写:
SELECT *
FROM title
WHERE name like
‘%$searchs%’
这句的意思是选择title表里面的所有字段(*),然后查询name中的$searchs变量。这个变量也就是你在index中输入的值啦。
然后在BODY里面绑定一个动态文本。选择NAME。
G. php多条件复合搜索怎么做到
这个用脚本来做更简单些,不用分多次往a.php传参。传一次就行了。
<!--HTML START-->
<!--函数参数推荐写数字,既对应“摩托罗拉”的id,但由于这里你没给出,我索性写上汉字了-->
<a href="javescript:set_made('摩托罗拉')">摩托罗拉</a>
<a href="javescript:set_made('诺基亚')">诺基亚</a>
<a href="javescript:set_made('苹果')">苹果</a>
<a href="javescript:set_price('1000-2000')">1000-2000元</a>
<a href="javescript:set_price('2000-3000')">2000-3000元</a>
<a href="javescript:set_price('3000-5000')">3000-5000元</a>
<a href="javescript:set_os('android系统')">android系统</a>
<a href="javescript:set_os('塞班系统')">塞班系统</a>
<a href="javescript:set_os('苹果系统')">苹果系统</a>
<!--这里的表单隐藏域,只显示一个搜索按钮-->
<form action='' method='post'>
<input id='made' name='made' type='hidden' value='<?php echo $_POST['made'] ?>'/>
<input id='price' name='price' type='hidden' value='<?php echo $_POST['price'] ?>'/>
<input id='os' name='os' type='hidden' value='<?php echo $_POST['os'] ?>'/>
<input type='submit' value = '搜索'/>
</form>
<!--HTML END-->
<!--SCRIPT START-->
<script>
/* @Tips : 这段JS代码可以放到单独的JS文件中去,也可以直接写到head里,随你。
* @Purpose : 这里几个函数分别是把隐藏域中的made、price、os设置成对应的值,点击链接时触发
* @Method : set_made,set_price,set_os
* @Param : str 字符串或者数字,请根据你的需要来决定
* @Return : NULL
*/
function set_made (str) {
document.getElementById('made').value = str;
}
function set_price (str) {
document.getElementById('price').value = str;
}
function set_os (str) {
document.getElementById('os').value = str;
}
</script>
<!--SCRIPT END-->
至于函数参数里你是要添ID 还是添汉字,自己改就行了。
还有你说的那个变色的问题,也不难做,但代码有点长,我懒得写了……
就跟你说一下方法:
首先你要给这几个<a>标签做个CSS类名,比如<a class='test'>,这个test可以不写,主要是用来区别页面其它的<a>标签。当然不写也没关系,只是会让JS脚本稍慢一点。
然后用document.getElementByTageName('a'),获取页面中所有的<a>标签。做个循环,把class不是test的过滤掉,再用他们的innerHTML属性与made、price、os的value属性分别比较,如果是一样的话,就改变它的背景颜色。
H. 求一个php搜索全站的代码
最简单的
1.表单提交关键词获得$keyword = $_POST['keyword'];
$query= mysql_query("SELECT * FROM `XXX` WHERE `title` LIKE '%$keyword %' LIMIT $offset,$perpage");
2.分页代码就不给你打上了,特么的长。。简写一下思路
LIMIT $offset,$perpage
$offset 是分页的偏移量 计算格式是 $perpage * ($cur_page - 1);
每页显示记录数 X (当前页 - 1)
$perpage 是每页显示的记录数
在你的分页代码里做好,传给LIMIT 直接sql搜索就行了。
3.搜索出来的内容这里定义为 $result
$result = array();
while($rows = mysql_fetch_assoc($query))
{
//将结果集title中的关键词标红
$newTitle = str_replace($keyword, '<font color=red>'.$keyword.'</font>',$rows['title']);
$result['title'] = $newTitle;
}
这样就得到了加红过的搜索的内容标题。纯手打望采纳,如果可用记得加分哦,不懂的可以追问了
I. PHP中怎么实现关键字搜索
PHP要实现关键字查搜索,需要用到like关键字来组合查询条件
like具体实现方法如下:
例一:
1$userForm=M('user');
1$where['name']=array('like','phpernote%');
2$userForm->where($where)->select();
这里的like查询即为:name like 'phpernote%'
例二:
1$where['name']=array('like',array('%phpernote%','%.com'),'OR');
这里的like查询即为:name like '%phpernote%' or name like '%.com'
例三:
1$where['name']=array(array('like','%a%'),array('like','%b%'),array('like','%c%'),'phpernote','or');
这里的like查询即为:(`name` LIKE '%a%') OR (`name` LIKE '%b%') OR (`name` LIKE '%c%') OR (`name` = 'phpernote')
例四:
1$where['_string']='(namelike"%phpernote%")OR(titlelike"%phpernote")'
这里的like查询即为:name like '%phpernote%' or title like '%phpernote'
J. PHP搜索怎么做
php中要查询mysql数据库中的内容必须先连接mysql数据库,然后再利用sql语句进行查询
SELECT 语句用于从数据库中选取所要搜索的数据。
具体用法为:
语句1:SELECT*FROMtable_name
解说:意思就是读取整个表table_name里面的数据显示出来
语句1:SELECT*FROMtable_nameWherex=1
解说:意思就是读取表table_name里面键名为:x值为:1的数据显示出来
Select 查询语句的例子
下面的例子选取存储在 "Persons" 表中的所有数据(* 字符选取表中所有数据):
<?php
$con=mysql_connect("localhost","peter","abc123");
if(!$con)
{
die('Couldnotconnect:'.mysql_error());
}
mysql_select_db("my_db",$con);
$result=mysql_query("SELECT*FROMPersons");
while($row=mysql_fetch_array($result))
{
echo$row['FirstName']."".$row['LastName'];
echo"<br/>";
}
mysql_close($con);
?>
上面这个例子在 $result 变量中存放由 mysql_query() 函数返回的数据。接下来,使用
mysql_fetch_array() 函数以数组的形式从记录集返回第一行。每个随后对 mysql_fetch_array()
函数的调用都会返回记录集中的下一行。 while loop 语句会循环记录集中的所有记录。为了输出每行的值,使用了 PHP 的 $row
变量 ($row['FirstName'] 和 $row['LastName'])。
以上代码的输出:
PeterGriffin
GlennQuagmire