1

CodeIgniter を使い始めたばかりで、 を使用してデータベースからデータを取得したいのです$query->result()が、foreachループはありません。これが私の現在のコードです:

   $this->db->select('m_name');
   $query1 = $this->db->get("marchant_details",1);
   $rows1 = $query1->result();

foreachただし、データを取得するために、このようなループを使用したくありません。

   foreach($query1->result() as $rows1)
   {
       $name[] = $rows1->m_name;
   }

誰でも代替ソリューションを提供できますか?

4

4 に答える 4

4

早速検索してみました。私は寝るつもりですが、次のようなことを試してみてください:

$query->result_array();

ダメなら明日確認します。

出典:ユーザーガイドたぶん便利になるでしょう。

于 2013-08-08T21:07:45.767 に答える
2

2 つの仮定があります。私が質問を誤解した、他の人が誤解したかのどちらかです。

ポイント:1 2 番目のパラメーターとして$this->db->get();メソッドに渡すことLIMIT 1で、クエリに設定され、1結果として行のみが取得されます。

では、単一行の db 結果に対してループを使用する必要があるのはなぜでしょうか?

結果を使用する$query->result();と、次のようになります。

Array
(
    [0] => stdClass Object
        (
            [m_name] => Foo
        )

)

値を取得するにm_nameは、次のようにします。

$result = $query->result();
echo $result[0]->m_name;

何らかの理由で、値を含む数値配列が必要な場合 (ループで行ったように)、 で簡単に実行できます$name[] = $result[0]->m_name;

$query->result_array();結果を使用すると、次のようになります。

Array
(
    [0] => Array
        (
            [m_name] => Foo
        )

)

値を取得するにm_nameは、次のようにします。

$result = $query->result_array();
echo $result[0]['m_name'];

ただし、クエリの制限を停止すると、クエリ結果に複数の行が表示されますrows1 = $query1->result_array();。代わりに使用できます。array_map()指定された配列の要素を操作するには:

$rows1 = $query1->result_array();

// `$row1` will be something like this:
Array
(
    [0] => Array
        (
            [m_name] => Foo
        )
    [1] => Array
        (
            [m_name] => Bar
        )
    [2] => Array
        (
            [m_name] => Baz
        )

)

array_map()結果の配列を操作するために使用します。

function getName($array) {
    return $array['m_name'];
}

$array = array_map("getName", $rows1);

print_r($array);

PHP v5.3+ を使用している場合は、次のようにします。

$array = array_map(function($array) {
    return $array['m_name'];
}, $rows1);
于 2013-08-08T21:06:50.080 に答える
1

CodeIgniter ユーザー ガイドには、次のようなバリエーションを示すDB クエリ結果を生成するための公式ページがあります。

$row = $query->first_row()
$row = $query->last_row()
$row = $query->next_row()
$row = $query->previous_row()

CodeIgniter を使用している場合、その魅力は効果的に非常に適切に文書化されていることです。

DB クラスを使用することはできませんが、選択したクラスをカスタム ライブラリなどとして使用することはできません。

では、与えられた可能性に満足できないのはなぜですか? また、クエリ結果をどのように生成したいのですか?

于 2013-08-08T21:15:21.680 に答える