別のクエリが機能しないため、をMYSQLクエリの1つに使用できないという問題に直面しています。私が理解できないのは、両方のクエリが無関係であり、最初のクエリを変更しても2番目のクエリに影響しないことです。 order_by
がlist_all_resorts
に影響を与えている理由がわかりますか?クエリのorder_byが無関係のクエリを失敗させます
私はintesresting部分にいくつかのコメント(//)を追加しました。
$shift_level = $this->shift_previous_day($list_all_resorts, 'level');
protected function shift_previous_day($list_all_resorts, $type) {
foreach ($list_all_resorts->result() as $list_all_resorts_Array){
$shift_DB = $this->shift_previous_day_DB($list_all_resorts_Array->id_resort, $type);
}
echo $shift_previous_day_DB;
}
protected function shift_previous_day_DB($id_resort, $type){
$this->db->trans_start();
$this->db->set($type.'_d134', $type.'_d133', FALSE);
$this->db->set($type.'_d1', $type.'_d0', FALSE);
$this->db->set($type.'_d0', '0', FALSE);
$this->db->where('id_resort', $id_resort);
$this->db->update('game_resort_'.$type);
$this->db->order_by('season', 'DESC'); // If I remove this line there is no error thrown
$this->db->limit('1');
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE){
return log_message();
}
else {
$result = 'all OK';
return $result;
}
}
$add_cash_to_history = $this->add_todays_stat_to_history('cash');
//This is where list_all_resorts will fail. Before that it works fine
protected function add_todays_stat_to_history($data_type) {
$info_message = '';
$list_all_resorts = $this->list_all_resorts(); // The is where list_all_resorts is called
foreach ($list_all_resorts->result() as $row_list_all_resorts){
//do some stuff
}
return $info_message;
}
protected function list_all_resorts(){
$this->db->select('id_resort'); // This is where the error points to
$this->db->from('game_resorts');
return $this->db->get();
}
私が手にエラーがある:game_resorts
をSELECT 'ORDER句' で1054不明な列 'のシーズン
:
データベースエラーはエラー番号を発生しました。
id_resort
season
DESCのLIMIT BY ORDER 1
更新game_resorts
FROM:
describe game_resorts:
id_resort int(11) NO PRI auto_increment
resort_name varchar(45) NO
resort_country varchar(45) YES
resort_description varchar(256) YES
id_player int(11) YES MUL
describe `game_resort_cash`:
id int(11) NO PRI
id_resort int(11) NO MUL
season int(3) NO 1
cash_d0 int(11) YES
cash_d1 int(11) YES
cash_d134 int(11) YES
エラーメッセージから、MySQLは列のシーズンがgame_resortsテーブルに存在しないと考えます。列のシーズンがgame_resortsテーブルに存在していますか?両方のスペルをダブルチェックしましたか? – dpp
'describe game_resorts;'の出力を提供できますか? – oschlueter
しかし、 'list_all_resorts'は' game_resort _ '。$ type'テーブルを扱っていません。これは '' game_resort_cash''のようなものです。 '' game_resort_cash''には '' season'だけが含まれています。 'game_resorts'は' season'を含んでおらず、そのテーブルから 'season'を要求しません。または私ですか? – remyremy