/////////////////////mssqlserver.php////////////////////////////////////////////////////////////
<?php
class MySQLDB
{
var $host="."; //主机名
var $user=""; //用户名
var $password=""; //用户密码
var $linkid; //连接值
var $dbid; //数据库选择的结果值
var $sTName; //指定当前操作的数据库表
var $sErr; //错误代码
var $nErr; //指示是否有错误存在,0无错误,1有错误
var $nResult; //查询结果值
var $aFName; //保存FieldsName的数组
var $nRows; //查询结果中的行数
var $nCols; //查询结果中的列数
var $aNew; //添加在AddNew函数后的数据,以数组形式保存
var $NewEdit; //判断当前是否在进行添加操作,0表示没有,1表示在进行添加,2表示编辑
var $sEditCon; //指定编辑记录的条件
var $nOffset; //记录偏移量
var $EOF; //标记是否到记录集尾
var $sSQL; //最后一条执行的SQL语句
function MySQLDB($TableName,$database) //构造函数
{
$this->nErr=0;
$this->NewEdit=0;
$this->sTName=$TableName;
$this->nResult=-1;
$this->nCols=0;
$this->nRows=0;
$this->nOffset=0;
$this->EOF=true;
unset($this->aFName);
unset($this->aNew);
if(!$this->linkid=mssql_connect($this->host,$this->user,$this->password))
{
$this->nErr=1;
$this->sErr="MySqlDB:数据库连接出错,请启动服务!";
return;
}
if(!$this->dbid=mssql_select_db($database))
{
$this->nErr=1;
$this->sErr="MySqlDB:选择的数据库".$database."不存在!";
return;
}
}function IsEmpty($Value)
{
if(is_string($Value)&&empty($Value))
return true;
return false;
}function Destroy() //数据清除处理
{
// mssql_query("commit");
if ($this->linkid)
mssql_close($this->linkid);
}function PrintErr()
{
if($this->nErr==1)
{
echo($this->sErr."<br><br>");
}
else
{
echo("没有错误<br><br>");
}
}function Execute($SQL) //直接执行SQL语句
{
if(empty($SQL))
{
$this->nErr=1;
$this->sErr="Execute:执行语句不能为空!";
return false;
}
$this->sSQL=$SQL;
if(!mssql_query($SQL))
{
$this->nErr=1;
$this->sErr="Execute:SQL语句:".$SQL."<br>MySql错误:".mssql_error();
return false;
}
return true;
}//在数据库里执行查询,SQL是查询的字段,Condition是查询条件,Order是以什么排序,Sequenc是按升序还是降序
function Query($TableName="",$SQL="*",$Condition="",$Order="",$Sequenc="")
{
if(!empty($TableName))
$this->sTName=$TableName;
$strSQL="select ".$SQL." from ".$this->sTName;
if(!empty($Condition))
$strSQL=$strSQL." where ".$Condition;
if(!empty($Order))
$strSQL=$strSQL." order by ".$Order;
if(!empty($Sequenc))
$strSQL=$strSQL." ".$Sequenc;
$this->sSQL=$strSQL;
if(!$this->nResult=mssql_query($strSQL))
{
$this->nErr=1;
$this->sErr="Query:SQL语句:".$strSQL."<br>MySql错误:".mssql_error()."<br>";
return;
}
// $this->nOffset=0;
$this->nRows=mssql_num_rows($this->nResult);
$this->nCols=mssql_num_fields($this->nResult);
if($this->nRows>0)
$this->EOF=false;
else
$this->EOF=true;
unset($this->aFName);
$this->aFName=array();
for($i=0;$i<$this->nCols;$i++)
$this->aFName[$i]=strtolower(mssql_field_name($this->nResult,$i));
}
//得到指定行的指定列的值,返回字符串//如果不指定Offset将取得下一行的值
//如果不指定nFields将取得该行的值,并已数组形式返回
function GetValue($nFields=-1,$Offset=-1)
{
if($this->nResult==-1)
{
$this->nErr=1;
$this->sErr="GetValue:请先执行Query()函数!";
return;
}
if($Offset>-1)
{
$this->nOffset=$Offset;
if($this->nOffset>=$this->nRows)
{
$this->nErr=1;
$this->sErr="GetValue:所要求的偏移量太大,无法达到!";
return;
}
}
if(!@mssql_data_seek($this->nResult,$this->nOffset))
{
$this->nErr=1;
$this->sErr="GetValue:请求不存在的记录!";
return;
}
$aResult=mssql_fetch_row($this->nResult);
if(is_int($nFields)&&$nFields>-1)
{
if($nFileds>$this->nCols)
{
$this->nErr=1;
$this->sErr="GetValue:所请求的列值大于实际的列值!";
return;
}
return $aResult[$nFields];
}
if(is_string($nFields))
{
$nFields=strtolower($nFields);
for($i=0;$i<$this->nCols;$i++)
{
if($this->aFName[$i]==$nFields)
break;
}
if($i==$this->nCols)
{
$this->nErr=1;
$this->sErr="GetValue:所请求的列不存在,请仔细检查!";
return;
}
return $aResult[$i];
}
return $aResult;
}
} // class end
?>
<?php
class MySQLDB
{
var $host="."; //主机名
var $user=""; //用户名
var $password=""; //用户密码
var $linkid; //连接值
var $dbid; //数据库选择的结果值
var $sTName; //指定当前操作的数据库表
var $sErr; //错误代码
var $nErr; //指示是否有错误存在,0无错误,1有错误
var $nResult; //查询结果值
var $aFName; //保存FieldsName的数组
var $nRows; //查询结果中的行数
var $nCols; //查询结果中的列数
var $aNew; //添加在AddNew函数后的数据,以数组形式保存
var $NewEdit; //判断当前是否在进行添加操作,0表示没有,1表示在进行添加,2表示编辑
var $sEditCon; //指定编辑记录的条件
var $nOffset; //记录偏移量
var $EOF; //标记是否到记录集尾
var $sSQL; //最后一条执行的SQL语句
function MySQLDB($TableName,$database) //构造函数
{
$this->nErr=0;
$this->NewEdit=0;
$this->sTName=$TableName;
$this->nResult=-1;
$this->nCols=0;
$this->nRows=0;
$this->nOffset=0;
$this->EOF=true;
unset($this->aFName);
unset($this->aNew);
if(!$this->linkid=mssql_connect($this->host,$this->user,$this->password))
{
$this->nErr=1;
$this->sErr="MySqlDB:数据库连接出错,请启动服务!";
return;
}
if(!$this->dbid=mssql_select_db($database))
{
$this->nErr=1;
$this->sErr="MySqlDB:选择的数据库".$database."不存在!";
return;
}
}function IsEmpty($Value)
{
if(is_string($Value)&&empty($Value))
return true;
return false;
}function Destroy() //数据清除处理
{
// mssql_query("commit");
if ($this->linkid)
mssql_close($this->linkid);
}function PrintErr()
{
if($this->nErr==1)
{
echo($this->sErr."<br><br>");
}
else
{
echo("没有错误<br><br>");
}
}function Execute($SQL) //直接执行SQL语句
{
if(empty($SQL))
{
$this->nErr=1;
$this->sErr="Execute:执行语句不能为空!";
return false;
}
$this->sSQL=$SQL;
if(!mssql_query($SQL))
{
$this->nErr=1;
$this->sErr="Execute:SQL语句:".$SQL."<br>MySql错误:".mssql_error();
return false;
}
return true;
}//在数据库里执行查询,SQL是查询的字段,Condition是查询条件,Order是以什么排序,Sequenc是按升序还是降序
function Query($TableName="",$SQL="*",$Condition="",$Order="",$Sequenc="")
{
if(!empty($TableName))
$this->sTName=$TableName;
$strSQL="select ".$SQL." from ".$this->sTName;
if(!empty($Condition))
$strSQL=$strSQL." where ".$Condition;
if(!empty($Order))
$strSQL=$strSQL." order by ".$Order;
if(!empty($Sequenc))
$strSQL=$strSQL." ".$Sequenc;
$this->sSQL=$strSQL;
if(!$this->nResult=mssql_query($strSQL))
{
$this->nErr=1;
$this->sErr="Query:SQL语句:".$strSQL."<br>MySql错误:".mssql_error()."<br>";
return;
}
// $this->nOffset=0;
$this->nRows=mssql_num_rows($this->nResult);
$this->nCols=mssql_num_fields($this->nResult);
if($this->nRows>0)
$this->EOF=false;
else
$this->EOF=true;
unset($this->aFName);
$this->aFName=array();
for($i=0;$i<$this->nCols;$i++)
$this->aFName[$i]=strtolower(mssql_field_name($this->nResult,$i));
}
//得到指定行的指定列的值,返回字符串//如果不指定Offset将取得下一行的值
//如果不指定nFields将取得该行的值,并已数组形式返回
function GetValue($nFields=-1,$Offset=-1)
{
if($this->nResult==-1)
{
$this->nErr=1;
$this->sErr="GetValue:请先执行Query()函数!";
return;
}
if($Offset>-1)
{
$this->nOffset=$Offset;
if($this->nOffset>=$this->nRows)
{
$this->nErr=1;
$this->sErr="GetValue:所要求的偏移量太大,无法达到!";
return;
}
}
if(!@mssql_data_seek($this->nResult,$this->nOffset))
{
$this->nErr=1;
$this->sErr="GetValue:请求不存在的记录!";
return;
}
$aResult=mssql_fetch_row($this->nResult);
if(is_int($nFields)&&$nFields>-1)
{
if($nFileds>$this->nCols)
{
$this->nErr=1;
$this->sErr="GetValue:所请求的列值大于实际的列值!";
return;
}
return $aResult[$nFields];
}
if(is_string($nFields))
{
$nFields=strtolower($nFields);
for($i=0;$i<$this->nCols;$i++)
{
if($this->aFName[$i]==$nFields)
break;
}
if($i==$this->nCols)
{
$this->nErr=1;
$this->sErr="GetValue:所请求的列不存在,请仔细检查!";
return;
}
return $aResult[$i];
}
return $aResult;
}
} // class end
?>
<?php
function getmicrotime()
{
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
} // 查询结果分页导航
function MyPages($total, $keyword, $offset, $maxline,$maxpage = 5){
echo "更 多 内 容<br>";
$keyword_url = urlencode($keyword);
$pages=ceil($total / $maxline);
// 检查是否有上一页
if($offset >= $maxline){
$preoffset=$offset - $maxline;
echo "<a href=\"".$_SERVER['PHP_SELF']."?KeyWord=".$keyword_url."&offset=".$preoffset."\"><b>上一页</b></a> \n";
}
// 计算总共需要的页数 显示当前页面之前后 $maxpage 个页码
for ($i = (ceil($offset/$maxline) - $maxpage + 1); $i <= (ceil($offset/$maxline) + $maxpage + 1); $i++){
if ($i>0 && $i <= $pages){
$listoffset=$maxline*($i-1);
if ($i==(ceil($offset/$maxline) + 1))
echo "<font color=red><b>$i</b></font> \n";
else
echo " <a href=\"".$_SERVER['PHP_SELF']."?KeyWord=".$keyword_url."&offset=".$listoffset."\">$i</a> ";
}
}
//检查是否有下一页
$nextoffset = $offset + $maxline;
if (ceil($nextoffset/$maxline) < $pages){
echo " <a href=\"".$_SERVER['PHP_SELF']."?KeyWord=".$keyword_url."&offset=".$nextoffset."\"><b>下一页</b></a>\n";
}
} // 查询条件构造
function MyCondition($keyword,$table_fields){
if (empty($keyword))
return "";
$k_link = ereg_replace('[^+ -]',"",$keyword);
if (strlen($k_link) < 1){
for ($f=0;$f<count($table_fields);$f++){
$tmp[] = $table_fields[$f]." like '%".$keyword."%' ";
}
$result = implode(" or ",$tmp);
}
else{
$key = split('[+ -]',$keyword);
for ($k=0;$k<count($key);$k++){
for ($f=0;$f<count($table_fields);$f++){
$tmp[] =$table_fields[$f]." like '%".$key[$k]."%' ";
}
$conditions[] = implode(" or ",$tmp);
unset($tmp);
}
$link = array(" ) or ( "," ) and ( "," ) and !( ");
$result = $conditions[0];
for ($i = 0; $i < strlen($k_link); $i++){
switch ($k_link{$i}) {
case "+":
$link_id = 0;
break;
case " ":
$link_id = 1;
break;
case "-":
$link_id = 2;
break;
}
$result .= $link[$link_id].$conditions[$i+1];
}
$result = "( ".$result." )";
}
return $result;
}
?>
<?php
$DBName = "search"; // 数据库名
$TableName = 'search'; //需要搜索的数据表
$Fields = "*"; // 需要查询显示的字段
$SrchFields = array("字段","信息"); // 需要进行搜索的(匹配关键字的)字段,根据你的数据表设定
$Order = "相关性"; // 结果排序:字段
$Sequenc = "DESC"; // 结果排序:顺序/倒序
$maxline = 5; // 每页显示的纪录数
?>
//////////////////////数据库建立/////////////////////////////////////////////////////////////
create table search( webid int IDENTITY(1,1)PRIMARY KEY,url char(20),字段 char (20),信息 char(200),timer char(20),
相关性 float);insert into search(url,字段,信息 ,timer ,相关性)values('www.sina.com','新闻','新浪体育讯 活塞队用花了半场比赛的时间来让“小皇帝”詹姆斯明白季后赛的防守究竟是怎么一回事。活塞队主场以79-61大胜骑士并以总比分4-3连续第四次晋级东部决赛','2004.1月',0.11);insert into search(url,字段,信息 ,timer ,相关性)values('www.163.com','新闻','我注定要成为盖世的英雄。','2002.4月',0.5);insert into search(url,字段,信息 ,timer ,相关性)values('www.etang.com','新闻','敬请关注文学艺术区武侠原创、金庸茶舍、古龙妙谈、推理小说、幽冥夜谈五版联合举办的“问鼎杯”首届群杀大赛。','2002.2月',0.2);insert into search(url,字段,信息 ,timer ,相关性)values('www.eyou.com','新闻','三国文化博大精深。','2004.12月',0.13);insert into search(url,字段,信息 ,timer ,相关性)values('www.baidu.com','新闻','五子棋是中国古老的益智游戏,为了增进板油的友谊,锻炼大家的大脑,欢迎大家参加静版五子棋大赛!我们的口号是:开发智力、增进团结,大家一起来做大脑体操。','2004.11月',0.6);insert into search(url,字段,信息 ,timer ,相关性)values('www.zhongsou.com','新闻','如需转载,请联系原作者 ','2003.1月',0.23);insert into search(url,字段,信息 ,timer ,相关性)values('www.cctv.com','新闻','和亲戚出来吃饭,DD考到了我曾经读过书的母校,聊天之间DD问及我以前在母校的状况,我笑笑没说什么。都是一些陈年往事,不提也罢。','2003.10月',0.56);insert into search(url,字段,信息 ,timer ,相关性)values('www.sohu.com','新闻','众亲戚在一旁一边听着一边偷着乐,我再不打住DD的话再说下去我可在亲戚面前无地自容了,于是帮DD倒了杯茶瞪了他一眼说:“你说话太多了吧?口干就先喝杯茶。”','2001.3月',0.25);insert into search(url,字段,信息 ,timer ,相关性)values('www.21cn.net','新闻','若有所思 天茫茫,海也茫茫.若有所思','2002.7月',0.54);insert into search(url,字段,信息 ,timer ,相关性)values('www.lottery.gov.cn','新闻','天茫茫,海也茫茫.但愿生活不彷徨.真也罢,假也罢.心中畅然是美画.望天从人愿,而今不了了','2005.12月',0.68);insert into search(url,字段,信息 ,timer ,相关性)values('www.csdn.net','新闻','喜欢坚持,攀越高山.喜欢自然,向往草原.喜欢闯荡,环游世界.喜欢触摸,感受生活.喜欢幻想,不切实际.喜欢做梦,因梦有你.喜欢寻觅,永远痴狂.','2004.9月',0.9);
insert into search(url,字段,信息 ,timer ,相关性)values('www.sina.com','web','百纳网 北京百盛航空服务公司 中国再生资源网 东丰信息港 合同 新空联盟 盈天下节能先锋网 整合营销官方网站','2002.12月',0.65);
register_globals = on或在程序开始处加入
extract($_GET);
extract($_POST);
我调试成功了,可以分页
但是里面有行代码是 $paginate['query'] = $query.' limit '.$offset.','.$rows;
$offset为当前页的首记录偏移量
$rows为每页显示信息条数
这个limit是mssql不支持的,如果是mssql ,怎么写这个sql语句??如果哪个大哥帮我把我的分页问题解决了,我...我....我.的80*2 都给他了