0

次の AnimalSpecies は、Values という名前の列が 1 つあるテーブルです。この列の要素を配列として取得したいと考えています。非常に基本的です!以下が空の配列を返すのはなぜですか? 私は多くのことを試しましたが、mysqlを直接使用するだけの場合

どこValuesからでも選ぶAnimalSpecies1

私は正しいことを理解しているようです。

モデル:

//retrieve dropdown options
public function get_options($table) {

    $this->db->select('*');
    $this->db->from($table);
    //$this->db->where('Options');

    $query = $this->db->get();
    //print_r($query);

    if ( $query->num_rows() > 0 )
    {
        $data = $query->row_array();
        print_r($this->db->last_query());die();
        return $data;
    }
}

コントローラ:

public function upload_page()
{
        $this->load->model('data_model');
        $species = $this->data_model->get_options("AnimalSpecies");

}

「オプション」列の値を配列として取得する方法はわかりましたが、mysql 出力の一部を削除する必要があるため、少し不器用です。for ループがなければ、各列値の数値インデックスを取得します。

public function get_options($table) {

    $this->db->select('*');
    $this->db->from($table);

    $query = $this->db->get();

    if ( $query->num_rows() > 0 )
    {
        $data = $query->result_array();

        for ($i=0; $i < count($data); $i++)
        {
            $options_array[] = $data[$i]['Options'];
        }

        return $options_array;
    }
}
4

1 に答える 1

0

これでうまくいくはずです(最後のコメントから判断):

public function get_options($table) {
    return $this->db->select('Options')
    ->get($table)
    ->row_array();
}

データが見つからない場合は false を返し、それ以外の場合は配列を取得します。

options 値だけが必要な場合は、次を使用できます。

public function get_options($table) {
    return $this->db->select('Options')
    ->get($table)
    ->row()
    ->Options;
}

これにより、Options の値が最初の行にあるものは何でも返されますが、行が見つからない場合はエラーが発生する可能性があります。

于 2013-07-12T20:26:33.050 に答える