将SQL查询的结果输出到PHP数组

时间:2010-05-07 20:18:34

标签: php oop

我是PHP的OOP新手,这看起来是否正确?

class whatever {

    Function Maths() {
    $this->sql->query($requete);

   $i = 0;

  while($val = mysql_fetch_array($this)) { 
    $tab[i][average] = $val['average'];
    $tab[i][randomData] = $val['sum'];
    $i=$i+1;
    }
        return $tab;
}

我想访问数组中包含的数据

$foo = new whatever();
$foo->Maths();
 for ($i, $i <= endOfTheArray; i++) {

    echo Maths->tab[i][average];
    echo Maths->tab[i][randomData];
 }

谢谢;)

编辑:我想将SQL查询的结果作为数组输出,所以我可以从类外部访问它

2 个答案:

答案 0 :(得分:5)

请查看PHP OOP基础知识:

http://www.php.net/manual/en/language.oop5.basic.php

修改:感谢您清理代码。尝试以下方面:

$tabs = array();
while($val = mysql_fetch_assoc($result)) { 
    $tabs[] = $val;
}

$foo = new whatever();
$tabs = $foo->Maths();
for ($tabs as $tab) {
    echo $tab['average'];
    echo $tab['randomData'];
}

http://www.php.net/manual/en/language.oop5.basic.php

答案 1 :(得分:5)

为了帮助你,这里有一些修改。但请注意这一点:如果没有PHP或OOP的良好背景,这很可能没有意义。你应该看看@ webbiedave的链接。

class whatever {

  static function maths() {
    $tabs = array();
    $results = $this->sql->query($requete);

    while($val = mysql_fetch_array($this)) { 
      $tabs = $val;
    }

    return $tabs;
}
  1. 这修复了语法错误和逻辑错误(例如,创建$results变量以保存SQL查询运行。)
  2. 我将maths方法设为静态,因为实际上没有必要使用当前示例实例化whatever()对象。
  3. 以下是对如何使用它的一些修改:

    $results = whatever::maths();
    foreacho ($results as $result) {
      echo $result['average'];
      echo $result['randomData'];
    }
    
    1. 由于maths()返回某些内容,您需要将其存储在变量中;简单地称之为,就像你之前做的那样,没有做任何事情。
    2. 这个错综复杂的for循环可以替换为foreach循环。