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

関数フィールドの代わりに、アクセスできるプロパティ フィールドが必要になります。さらに、パブリック プロパティの代わりにゲッターとセッターを使用することをお勧めします。

これは、データを array("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 に答える