私は、このモデルを持っている:CodeIgniterを使用してテーブルエイリアスのlist_fieldsを取得するにはどうすればよいですか?
public function listar_jogos_fase($id_fase) {
$this->db->select('fas.nome as `fase`, jogos.numero as `jogo`, jog1.nome as `jogador1`, jog2.nome as `jogador2`, jogos.data as `data`, jogos.hora as `hora`, jogos.local as `local`', FALSE);
$this->db->from('jogos');
$this->db->join('jogadores as jog1', 'ON jog1.id = jogos.jogador1');
$this->db->join('jogadores as jog2', 'ON jog2.id = jogos.jogador2');
$this->db->join('fases as fas', 'ON fas.id = jogos.fase');
$this->db->where('fase',$id_fase);
$dados['dados'] = $this->db->get()->result();
$dados['colunas'] = $this->db->list_fields('jogos');
return $dados;
}
だから私は私のエイリアステーブルの一部だけ選択されたフィールドで、この結果を受け取りたい:
fase jogo jogador1 jogador2 data hora local 1° Fase 1 Andy Murray Juan Martin del Potro 2017-01-19 16:30:00 Roland Garros, Paris - Quadra 1 1° Fase 2 Novak Djokovic Roger Federer 2017-01-19 16:30:00 Roland Garros, Paris - Quadra 2
しかし、私は、この他を受けています私のテーブルのすべてのフィールド:
id fase numero jogador1 set1_jg1 set2_jg1 set3_jg1 set4_jg1 set5_jg1 jogador2 set1_jg2 set2_jg2 set3_jg2 set4_jg2 set5_jg2 data hora local 1° Fase 1 Andy Murray Juan Martin del Potro 2017-01-19 16:30:00 Roland Garros, Paris - Quadra 1 1° Fase 2 Novak Djokovic Roger Federer 2017-01-19 16:30:00 Roland Garros, Paris - Quadra 2
誰かが私を助けてくれますか? ありがとうございました!私がいることを使用する場合
[OK]を、@Baktiウィジャヤ... :私は
public function listar_jogos_fase($id_fase) {
$dados['dados'] = $this->db->query(
"SELECT
d.nome fase,
a.numero jogo,
b.nome jogador1,
c.nome jogador2,
a.data data,
a.hora hora,
a.local local
FROM jogos a
JOIN jogadores b ON a.id = b.id
JOIN jogadores c ON a.id = c.id
JOIN fases d ON a.fase = d.id
where fase=$id_fase"
)->result_array();
$dados['colunas'] = $this->db->list_fields('jogos');
return $dados;
}
つもりはこれを受け取る:
Array
(
[dados] => Array
(
[0] => Array
(
[fase] => 1° Fase
[jogo] => 1
[jogador1] => Andy Murray
[jogador2] => Andy Murray
[data] => 2017-01-19
[hora] => 16:30:00
[local] => Roland Garros, Paris - Quadra 1
)
[1] => Array
(
[fase] => 1° Fase
[jogo] => 2
[jogador1] => Novak Djokovic
[jogador2] => Novak Djokovic
[data] => 2017-01-19
[hora] => 16:30:00
[local] => Roland Garros, Paris - Quadra 2
)
)
[colunas] => Array
(
[0] => id
[1] => fase
[2] => numero
[3] => jogador1
[4] => set1_jg1
[5] => set2_jg1
[6] => set3_jg1
[7] => set4_jg1
[8] => set5_jg1
[9] => jogador2
[10] => set1_jg2
[11] => set2_jg2
[12] => set3_jg2
[13] => set4_jg2
[14] => set5_jg2
[15] => data
[16] => hora
[17] => local
)
)
だから、私はこれを操作する方法を知っています結果...
しかし、エイリアステーブルフィールドの名前を取得するために、可能であればCodeIgniterの$ this-> db-> list_fields()を使用したいと考えています。
$ this-> db-> list_fields( 'jogos')を使用すると、配列[列]でわかるように元のテーブル 'jogos'のすべてのフィールドを受け取ります...
しかし私すべてのフィールドが必要なわけではありません。[データ]配列に返される7つのフィールドは[fase]、[jogo]、[jogador1]、[jogador2]、[data]、[hora]、[local] ...
私は$ this-> db-> list_fields( 'a')のようなものを使用したいと思います。 'a'は元のテーブル 'jogos'のエイリアスです...
しかし、その$ this-> db-> list_fields( 'a')を使用すると、私はこのエラーになります:
Error Number: 42S02/1146 Table 'tennis.a' doesn't exist SHOW COLUMNS FROM `a` Filename: C:/wamp64/www/tennis/system/database/DB_driver.php Line Number: 691
「これはできません!容認できる答えでもあります。
ご注意いただきありがとうございます!
'ますprint_r($ DADOS [ 'DADOS']);'出力は何ですか? –