1

クエリの結果を出力する方法を学ぼうとしていますが、混乱しています。

設定テーブル:

site_id | site_name | site_description

1         Test        Testing

構成:

private $hostname = 'localhost';
private $username = 'blah';
private $password = 'blah';
private $database = 'blah';

public function __construct()
{
    $this->connection = new mysqli($this->hostname,$this->username,$this->password,$this->database);

    if($this->connection->connect_errno) 
    {
        die('Error: ' . $this->connection->error);
    }
}

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

public function __destruct()
{
    $this->connection->close(); 
}

コード #1:

public function __construct()
{
    $this->db = new Config;

    $si = $this->db->query('SELECT * FROM config');

    while($site_if = $si->fetch_array())
    {
        $this->site_info[] = $site_if;
    }

}

public function getSiteName()
{
    echo $this->site_info['site_name'];
}

これは何も出力しません。

コード #2:

public function __construct()
{
    $this->db = new Config;

    $si = $this->db->query('SELECT * FROM config');

    while($site_if = $si->fetch_array())
    {
        $this->site_name_info = $site_if['site_name'];
    }

}

public function getSiteName()
{
    echo $this->site_name_info;
}

これは情報を出力しますが、それは正しいアプローチですか? Code #1 で印刷する方法はありますか?

私がやりたいのは、サイト名をエコーすることだけです。サイト名は1つだけです。

4

2 に答える 2

1

構成テーブルの設計に関する詳細情報がなければ、私が提案できる唯一の考えは次のようなものです。

while($site_if = $si->fetch_array())
{
    $this->site_info[$site_if["NAME_COLUMN_NAME"]] = $site_if["VALUE_COLUMN_NAME"];
}

NAME_COLUMN_NAMEVALUE_COLUMN_NAMEテーブル設計の列名に置き換える必要があります。

その後、$this->site_info名前で配列からカスタム構成パラメーターを取得できるようになります。

public function getSiteName()
{
    echo $this->site_info['site_name'];
}
于 2012-04-08T19:55:59.267 に答える
0

例 #1 では$this->site_info、配列の配列が含まれています。内容を簡単に見るには:

print_r($this->site_info);

内容をループするには、各行の名前を出力します。

foreach ($this->site_info as $row){
   echo $row['site_name'];
}
于 2012-04-08T19:54:42.883 に答える