萌萌妈妈 发表于 2015-2-4 00:18:52

PHP教程之我的一个php_mysql分页类

如果你单纯是为了做网站赚钱,我想你还是别学php的好,去学ASP,JSP好了,毕竟它们有实力雄厚的公司去支持它们。mysql|分页   class RSPage {
var $Debug    =0;
var $sqoe   =1; // sqoe= show query on error
var $Link_ID    = 0;
var $Record    = array();
var $Row;
var $numRow;
var $Parse;
var $Error   = "";
var $m_timeFmt = "YYYY-MM-DD HH24:MI:SS";

    var $m_num=-1;
    var $m_sql;
    var $m_pageSize=10;
    var $m_cmt;
    var    $m_curPage=1;
    function open($DB_Link)
    {
      $this->Link_ID = $DB_Link;
    }

    function query($Query_String,$page=1,$cnt=-1,$size=10) {
      if($Query_String=="")
      {
          echo "履行语句不克不及为空!";
          return false;
      }
      if(!$page)
            $page = 1;
      if(!$cnt)
            $cnt = -1;
      $this->m_pageSize = $size;

      if($this->Parse){
          mysql_free_result($this->Parse);
      }

      if($cnt!=-1){
            $this->m_num = $cnt;
      }
      else{
            $result = mysql_query($Query_String, $this->Link_ID);
            if(!$result){
                $this->Error=mysql_error($this->Link_ID);
            }
            else{
                $this->m_num = mysql_num_rows($result);
            }
            /*
            $cntsql = "select count(*) max_num from ($Query_String)";
            $maxnum = 0;
            $result = mysql_query($sqlstr,$this->Link_ID);
            $ret = mysql_fetch_array($result);
            mysql_free_result($result);
            if(!$ret) {
                $this->Error=mysql_error($this->Link_ID);
            }
            else {
                $this->m_num = $ret["max_num"];
            }
            */
            
      }
      $pageCount = $this->getPageCount();
      $pageSize = $this->getPageSize();
      if($page>$pageCount)$page=$pageCount;
      if($page<1)$page=1;
      $this->m_curPage=$page;
      $posBegin = ($page-1)*$pageSize;
      $posEnd = $posBegin + $pageSize;
      $Query_String = "$Query_String LIMIT $posBegin,$posEnd";
      $this->Parse=mysql_query($Query_String,$this->Link_ID);

      if(!$this->Parse) {
         $this->Error=mysql_error($this->Link_ID);
      }
      $this->Row=0;

      if($this->Debug) {
          printf("Debug: query = %s<br>\n", $Query_String);
      }

      if ($this->Error && $this->sqoe)
      echo "<BR><FONT color=red><B>".$this->Error["message"]."<BR>Query :\"$Query_String\"</B></FONT>";
      $numRow=mysql_num_rows($this->Parse);
      return $this->Parse;
}
function setTimeFormat($timestr){
    $this->m_timeFmt = $timestr;
}
function next_record() {
      if(!($row = mysql_fetch_array($this->Parse))) {
          mysql_free_result($this->Parse);
          $this->Parse = false;
          $stat=0;
      }
      else {
          while(list($key,$val)=each($row)) {
            $colreturn=strtolower($key);
            $this->Record[ "$colreturn" ] = $val;
            if($this->Debug) echo"<b>[$key]</b>:".$val."<br>\n";
          }
          $stat=1;
      }

    return $stat;
}

function record_exist() {
    if(0 == mysql_num_rows($this->Parse)) {
                return 0;
          } else {
                return 1;
      }

return $stat;
}

function seek($pos) {
      $this->Row=$pos;
}

function affected_rows() {
    return mysql_affected_rows($this->Parse);
}

function num_rows() {
          return mysql_num_rows($this->Parse);
}

function f($Name) {
    return $this->Record[$Name];
}

function p($Name) {
    print $this->Record[$Name];
}

function close() {
      if($this->Debug) {
          //printf("Disconnecting...<br>\n");
      }
      if($this->Parse){
          mysql_free_result($this->Parse);
      }
      //mysql_close($this->Link_ID);
}

//---public 失掉以后页
    function getCurPage(){return $this->m_curPage;}
    //---public 设定页长
    function setPageSize($page_size){$this->m_pageSize = $page_size;}
    //---public 失掉页长
    function getPageSize(){return $this->m_pageSize;}
    //---public 失掉记载总数
    function getCount(){return $this->m_num;}
    //---public 失掉页总数
    function getPageCount(){
      $page=floor($this->getCount()/$this->getPageSize());
      if($this->getCount()%$this->getPageSize()>0)$page++;
      return $page;
    }
    // 显示导航条。
    // 参数申明: $url    挪用页面ex:http://hello.php?showtype=main
    function show_navibar($recname="笔记录",$first="首页",$pre="上页",$next="下页",$last="末页"){
      $showurl = getenv("REQUEST_URI");
      $tmppos = strpos($showurl,"&rscnt=");
      if(!$tmppos)
            $tmppos = strpos($showurl,"?rscnt=");
      if($tmppos)
            $showurl = substr($showurl,0,$tmppos);
      $url = $showurl;
      $page = $this->getCurPage();
      $pagecnt = $this->getPageCount();
      $cnt = $this->getCount();
      if($cnt < 0)// 没有分页,不显示任何器材。
            return;
      
      if(!strrchr($url,"?"))
            $url = $url."?";
      else                            // url已带了参数。
            $url = $url."&";
      
      $url = $url."rscnt=".$cnt."&page=";
      
      if($page>1){
            ?>
<a href=<?echo $url?>1><?=$first?></a> <a href=<?echo $url.($page-1)?>><?=$pre?></a>
            <?
      }
      else{
            ?>
            <?=$first?> <?=$pre?>
            <?
      }
      
      if($page<$pagecnt){
            ?>
<a href=<?echo $url.($page+1)?>><?=$next?></a> <a href=<?echo $url.$pagecnt?>><?=$last?></a>
            <?
      }
      else{
            ?>
            <?=$next?> <?=$last?>
            <?
      }
      ?>
      共有 <font color="#FF0000"><?=$cnt?></font> <?=$recname?>,以后<?=$page?>/<?=$pagecnt?>
      第<input type=text style="width: 20px; height: 16px; font-size: 12px; color: #000000;border: 1px solid;" name=page value=<?=$page?>>页
      <input type=button onclick="ice_ttttt_runto('<?=$url?>')" style="height: 16px; font-size: 12px; color: #000000;border: 1px solid;" value="Go!">
      <script language=javascript>
            <!--
      function ice_ttttt_runto(url){
            var p = self.page.value;
            self.navigate(url+p);
      }
            --></script>
      <?

    }
}对于PHP的语法结构,刚开始真的很不习惯,真搞不懂为什么每个变量之前都要加个“$”符号,每个语句写完之后都必须加上“分号”来表示此句已经结束,还有,PHP对字母的大小写是敏感的,写的时候一定要注意大小写的区别。

不帅 发表于 2015-2-4 11:26:28

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

冷月葬花魂 发表于 2015-2-9 22:20:45

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

精灵巫婆 发表于 2015-2-24 00:04:10

个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。

莫相离 发表于 2015-2-24 06:43:56

至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。

柔情似水 发表于 2015-3-7 11:39:29

php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。

透明 发表于 2015-3-15 02:07:40

其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎

谁可相欹 发表于 2015-3-17 20:10:46

作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。

admin 发表于 2015-3-20 10:16:55

当然这种网站的会员费就几十块钱。

蒙在股里 发表于 2015-3-25 13:36:52

做为1门年轻的语言,php一直很努力。

萌萌妈妈 发表于 2015-3-28 02:29:10

在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、

若天明 发表于 2015-4-1 09:10:59

有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。

山那边是海 发表于 2015-4-12 07:43:11

Ps:以上纯属原创,如有雷同,纯属巧合

只想知道 发表于 2015-4-25 16:52:41

兴趣是最好的老师,百度是最好的词典。

深爱那片海 发表于 2015-5-12 13:52:52

为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。

愤怒的大鸟 发表于 2015-6-8 06:58:09

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

再见西城 发表于 2015-6-13 21:15:37

最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。

飘飘悠悠 发表于 2015-7-12 07:16:02

php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。

兰色精灵 发表于 2015-7-19 01:12:26

作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。

飘灵儿 发表于 2015-7-20 01:06:33

先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
页: [1]
查看完整版本: PHP教程之我的一个php_mysql分页类