/////////////////////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
?>

解决方案 »

  1.   

    ///////////////////////myconfig.php///////////////////////////////////////////////////////////
    <?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;
    }
    ?>
      

  2.   

    /////////////////////myconfig.php/////////////////////////////////////////////////////////////
    <?php
    $DBName = "search"; // 数据库名
    $TableName = 'search'; //需要搜索的数据表
    $Fields = "*"; // 需要查询显示的字段
    $SrchFields = array("字段","信息"); // 需要进行搜索的(匹配关键字的)字段,根据你的数据表设定
    $Order = "相关性"; // 结果排序:字段
    $Sequenc = "DESC"; // 结果排序:顺序/倒序
    $maxline = 5; // 每页显示的纪录数
    ?>
      

  3.   

    因为连续回帖三次,数据库结构没给出,所以只能又注册了一个号,下边是数据库结构
    //////////////////////数据库建立/////////////////////////////////////////////////////////////
    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);
      

  4.   

    令php.ini中
    register_globals = on或在程序开始处加入
    extract($_GET);
    extract($_POST);
      

  5.   

    在csdn上搜到一个大哥帖的分页代码,不过是php和mysql的
    我调试成功了,可以分页
    但是里面有行代码是  $paginate['query']   =   $query.'   limit   '.$offset.','.$rows;
    $offset为当前页的首记录偏移量 
    $rows为每页显示信息条数
    这个limit是mssql不支持的,如果是mssql ,怎么写这个sql语句??如果哪个大哥帮我把我的分页问题解决了,我...我....我.的80*2 都给他了