PHP脚本的8个技巧(2)

作者:未知 来源:未知 添加时间:2006年7月2日 字体:

    开放数据库连接(ODBC)已成为一种与数据库进行通信的工业标准。PHP也提供了标准的接口,使得PHP能调用Access,SQL Server等数据库。其相关函数是: 

   

  (1)integer odbc_connect(string dsn, string user, string password) 

   

  连接到一个ODBC数据库源名字上。 

   

  (2)integer odbc_exec(integer connection, string query)或 odbc_do(integer connection, string query) 

   

  在一个连接上执行查询。 

   

  (3)boolean odbc_fetch_row(integer result, integer row) 

   

  从一个结果集中获取一行数据。Row参数是可选的,若为空缺,则返回下一个有效行。在结果集中不再剩余行时返回false。 

   

  (4)boolean odbc_close(integer connection) 

   

  关闭一个数据库的连接。若在该连接上有打开的事务,则返回一个错误,而且连接不会被关闭。 

   

  最后,还是看个分页的例子: 

   

  <? 

   

  //设定每页显示条数 

   

  $show_num = 10; 

   

  $spages = $pages;//避免$pages后期被改变 

   

  //定义连接 

   

  $dsn = "localhost"; 

   

  $user = "sa"; 

   

  $password = ""; 

   

  //计算总记录数 

   

  $rs_num = "select count(*) as id from bbs where zu='0' and lei='".$lei."'"; 

   

  $conn_id = odbc_connect($dsn,$user,$password); 

   

  $rnum = odbc_exec($conn_id,$rs_num); 

   

  while(odbc_fetch_row($rnum)){ 

   

  $total_rs = odbc_result($rnum,"id");//将总记录数放入$total_rs变量 

   

  } 

   

  //计算与页有关的条数 

   

  $nnn = $total_rs / $show_num;//计算总页数 

   

  $hnnn = intval($nnn);//将总页数取整 

   

  $cnnnn = $nnn - $hnnn; 

   

  //计算所需总页数 

   

  switch ($cnnn){ 

   

  case "0": 

   

  $hnnn++; 

   

  $nnn = $hnnn;//总页数 

   

  break; 

   

  default : 

   

  $nnn = $hnnn;//总页数 

   

  break; 

   

  }; 

   

  if ($nnn == 0)$nnn++; 

   

  //计算页面改变所需的条件 

   

  $fore = $pages; 

   

  $next = $pages; 

   

  $fore -= 1; 

   

  $next += 1; 

   

  if ($fore > 0) { 

   

  echo "<a>首页</a>"; 

   

  echo "<a>前页</a>"; 

   

  }; 

   

  if ($pages < $nnn) { 

   

  echo "<a>后页</a>"; 

   

  echo "<a>尾页</a>"; 

   

  }; 

   

  echo "共".$nnn."页"; 

   

  $query_string = "SELECT * FROM table where condition order by you wanted order"; 

   

  $cur = odbc_exec($conn_id,$query_string); 

   

  //取到循环的顶部 

   

  $cnum = ($pages-1) * $show_num;//计算当前的记录游标的位置 

   

  //空循环到显示记录游标处 

   

  if ($cnum != 0){ 

   

  for ($i=0;$i<=$cnum;odbc_fetch_row($cur)){$i++;}; 

   

  }; 

   

  $i=1; 

   

  //显示记录 

   

  while(odbc_fetch_row($cur)){ 

   

  echo ; 

   

  if ($i == $show_num){//在不满页数时跳出程序 

   

  break; 

   

  }; 

   

  $i++; 

   

  }; 

   

  //关闭连接 

   

  odbc_close($conn_id); 

   

  ?>

ppdesk