include("mysql.class.php");//连接数据库
class select extends mysql {
private $one=array();//一条记录数组
    private $all=array();//查询所有记录数组
//查询一条记录
    function getOne($sql){
     $rs=$this->query($sql);
     $this->one=$this->fetch_array($rs);
     return $this->one;
    }
//查询所有记录
    function getAll($sql) {
     $rs=$this->query($sql);
      while($row=$this->fetch_array($rs)){
     $this->all[]=$row;
      }
      return $this->all;
    }
}使用时能不能只new一次
$db= new select();$new=$db->getAll("SELECT * FROM new");
print_r($new);
echo "<br>";
echo "<br>";
echo "<br>";
$bbs=$db->getAll("SELECT * FROM bbs ");
echo "<br>";
echo "<br>";
echo "<br>";
print_r($bbs);
第一个打印数组print_r($new);正常
第二个打印数组print_r($bbs);显示如下在第一个数组后面追加了值Array ( [0] => Array ( [0] => 1 [id] => 1 [1] => 夏日 [title] => 夏日 [2] => 夏季室外紫外线强烈 [content] => 夏季室外紫外线强烈 [3] => 2009-05-25 [datetime] => 2009-05-25 [4] => 5 [num] => 5 ) [1] => Array ( [0] => 2 [id] => 2 [1] => 防治“计算机皮肤”七招 [title] => 防治“计算机皮肤”七招 [2] => 整天要对着电脑的办公室女性,脸上总会无端地生出许多恼人的小痘痘 [content] => 整天要对着电脑的办公室女性,脸上总会无端地生出许多恼人的小痘痘 [3] => 2009-05-25 [datetime] => 2009-05-25 [4] => 8 [num] => 8 ) [2] => Array ( [0] => 1 [id] => 1 [1] => 网站做得很好 [title] => 网站做得很好 [2] => [email protected] [mail] => [email protected] [3] => 网站做得很好 [content] => 网站做得很好 [4] => 2009-05-25 [datetime] => 2009-05-25 ) ) 
我要的结果是print_r($bbs);Array ( [0] => Array ( [0] => 1 [id] => 1 [1] => 网站做得很好 [title] => 网站做得很好 [2] => [email protected] [mail] => [email protected] [3] => 网站做得很好 [content] => 网站做得很好 [4] => 2009-05-25 [datetime] => 2009-05-25 ) ) 我是$db2= new select();
$bbs=$db2->getAll("SELECT * FROM bbs ");去解决了能不能
$db= new select();$new=$db->getAll("SELECT * FROM new");
print_r($new);
echo "<br>";
echo "<br>";
echo "<br>";
$bbs=$db->getAll("SELECT * FROM bbs ");
echo "<br>";
echo "<br>";
echo "<br>";
print_r($bbs);高手能不能加个接口去解决呢想学习一下接口如果能用接口去解决请加接口解决无限感谢!!

解决方案 »

  1.   

    print_r($new);
    结果是Array ( [0] => Array ( [0] => 1 [id] => 1 [1] => 夏日 [title] => 夏日 [2] => 夏季室外紫外线强烈 [content] => 夏季室外紫外线强烈 [3] => 2009-05-25 [datetime] => 2009-05-25 [4] => 5 [num] => 5 ) [1] => Array ( [0] => 2 [id] => 2 [1] => 防治“计算机皮肤”七招 [title] => 防治“计算机皮肤”七招 [2] => 整天要对着电脑的办公室女性,脸上总会无端地生出许多恼人的小痘痘 [content] => 整天要对着电脑的办公室女性,脸上总会无端地生出许多恼人的小痘痘 [3] => 2009-05-25 [datetime] => 2009-05-25 [4] => 8 [num] => 8 ) ) 
      

  2.   

        function getAll($sql) {
         $rs=$this->query($sql);
          $this->all = array();//初始化下...
          while($row=$this->fetch_array($rs)){
            $this->all[]=$row;
          }
          return $this->all;
        }
      

  3.   

    private $all=array();//查询所有记录数组
    虽然是私有的,但是你每次调用getAll的时候,还会将上一次的覆盖.可以考虑做一个多维数组保存,如果你需要保存上一次的搜索结果.
    如果是想覆盖的话,就直接在使用前清空    function getAll($sql) {
         $this->all = array();
         $rs=$this->query($sql);
          while($row=$this->fetch_array($rs)){
            $this->all[]=$row;
          }
          return $this->all;
        }
      

  4.   

    这样 private $all=array();//查询所有记录数组
    不是初始化下...吗如果不是怎么样初始化下...
      

  5.   

    没看到这句$this->all = array();?
      

  6.   

    我只想new一次就可以不知道有没办法只new一次得多我要的结果
      

  7.   

    class select extends mysql {
        private $one=array();//一条记录数组
        private $all=array();//查询所有记录数组回foolbirdflyfirst 的话我是定义 private $all=array();//查询所有记录数组返回用
    return $this->all;不知道对不对
      

  8.   

    include("mysql.class.php");//连接数据库
    class select extends mysql {
        private $one=array();//一条记录数组 
        private $all=array();//查询所有记录数组
    //查询一条记录
        function getOne($sql){
            $rs=$this->query($sql);
            $this->one=$this->fetch_array($rs);
            return $this->one;
        }
    //查询所有记录
        function getAll($sql) {
         $rs=$this->query($sql);
         $this->all=array();   //  在这里实例化
          while($row=$this->fetch_array($rs)){
            $this->all[]=$row;
          }
          return $this->all;
        }
    }
      

  9.   

    本来就应该new一次,没理由执行一次sql就new一次select
    $this->all = array()不就可以在getAll执行之后强制清空结果数组了吗?
    ...
        function getAll($sql) {
         $rs=$this->query($sql);
          $this->all = array();
          while($row=$this->fetch_array($rs)){
            $this->all[]=$row;
          }
          return $this->all;
        }
    ...
    //使用
    $db= new select();$new=$db->getAll("SELECT * FROM new");
    print_r($new);
    echo "<br>";
    echo "<br>";
    echo "<br>";
    $bbs=$db->getAll("SELECT * FROM bbs ");
    echo "<br>";
    echo "<br>";
    echo "<br>";
    print_r($bbs);
      

  10.   

    $this->all 将其初始化,new一次就可以了