0

我想从数据库中的表中检索数据,并将结果显示在下表中的数组中。

array("1"=>​​"Value 1", "2"=>"value2") 这是我尝试使用的函数,但是当我尝试显示数组时出现错误。请我在这方面需要帮助。我是 OO Php 的新手。

<?php
class query {

public function listfields (){
    $result = $this->mysqli->query("SELECT id, name FROM fields", MYSQLI_USE_RESULT);
    while($row=$result->fetch_assoc()){
    $this->fields[$row["id"]] = $row["name"];
    }
    $result->free();

}

public function fields(){
return $this->fields;   
}
        }


$list = new query;
$list->listfields();
$field1 = $list->fields();

echo $field1;
?>
4

2 回答 2

0

尝试这个。

<?php

class query {

public function listfields (){

 $fields = array();
 $rowcnt =1;
 $result = $this->mysqli->query("SELECT id, name FROM fields", MYSQLI_USE_RESULT);
    while($row=$result->fetch_assoc()){
      $this->fields[$row["id"]] = $row["name"];
     //$this->fields[$rowcnt] = $row["name"];   // if you want different indexing.
      $rowcnt++;
 }
 $result->free();
}

public function fields(){
    return $this->fields;   
}
}
$list = new query();
$list->listfields();
$field1 = $list->fields();
var_dump($field1);
?>
于 2012-08-13T07:00:31.093 回答
0

您将需要一个可以访问的属性字段,而不是您的函数字段。此外,我建议使用 getter 和 setter 而不是公共属性,我相信你会知道如何。

这将以数组(“1”=>“Value 1”,“2”=>“value2”)形式返回数据。

class query {

public $fields;

public function fillfields ()
{
    $result = $this->mysqli->query("SELECT id, name FROM fields", MYSQLI_USE_RESULT);
    while($row=$result->fetch_assoc()){
         $this->fields[] = $row["name"];
    }
    $result->free();
}

$list = new query;
$list->fillfields();
$field1 = $list->fields[1];

echo $field1;
于 2012-08-13T07:00:55.513 回答