Мое сообщение об ошибке в платформе codeigniter:
Произошла ошибка базы данных
Error Number: 1140
In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'hms.rooms.id'; this is incompatible with sql_mode=only_full_group_by
SELECT `rooms`.*, count(room_no) as total_rooms FROM `rooms` WHERE `room_type_id` = '10'
Filename: D:/Installed_Apps/OpenServer/OpenServer/domains/hms.loc/system/database/DB_driver.php
Line Number: 691
Почему возникает такая ошибка и как ее устранить? В чем может быть проблема в коде?
В этих функциях что-то не так или всё нормально?
function check_availability($check_in, $check_out, $adults, $kids, $room_type_id)
{
$query = '?date_from='.$check_in.'&date_to='.$check_out.'&adults='.$adults.'&kids='.$kids.'&room_type=';
$CI =& get_instance();
if ($check_in == $check_out) {
$check_out = date('Y-m-d', strtotime($check_out . '+ 1 day'));
}
$CI->db->where('id', 1);
$settings = $CI->db->get('settings')->row_array();
$CI->db->where('id', $room_type_id);
$CI->db->select('room_types.*,base_price as price');
$room_type = $CI->db->get('room_types')->row_array();
// echo ''; print_r($room_type); die;
$CI->db->where('room_type_id', $room_type_id);
$CI->db->select('rooms.*,count(room_no) as total_rooms');
$rooms = $CI->db->get('rooms')->row_array();
$total_rooms = $rooms['total_rooms'];
// echo ''; print_r($rooms); die;
$begin = new DateTime($check_in);
$end = new DateTime($check_out);
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($begin, $interval, $end);
foreach ($period as $dt) {
$date = $dt->format( "Y-m-d" );
$dayno = $dt->format("N");
$day = $dt->format("D");
$day = strtolower($day);
// echo $date;die;
// check for room block period
if ($date >= $settings['room_block_start_date'] && $date session->set_flashdata('error', $block_message);
redirect('');
}
$CI->db->where('O.room_type_id', $room_type_id);
$CI->db->where('R.date', $date);
$CI->db->select('R.*,');
$CI->db->join('orders O', 'O.id = R.order_id', 'LEFT');
$orders = $CI->db->get('rel_orders_prices R')->result_array();
// echo ''; print_r($orders); die;
// echo $total_rooms;die;
if ($total_rooms > 0) {
//echo count($orders); die;
if (count($orders) >= $total_rooms) {
$CI->session->unset_userdata('booking_data');
$CI->session->unset_userdata('coupon_data');
$CI->session->set_flashdata('error', "Sorry.. This Dates Between Rooms Not Available Please Try With Another Date Or Room");
redirect('front/book/index' . $query);
} else {
continue; // continue loop
}
} else {
$CI->session->unset_userdata('booking_data');
$CI->session->unset_userdata('coupon_data');
$CI->session->set_flashdata('error', "Sorry.. This Dates Between Rooms Not Available Please Try With Another Date Or Room");
redirect('front/book/index' . $query);
}
}
return;
}
function check_availability_ajax($check_in, $check_out, $adults, $kids, $room_type_id)
{
$query = '?date_from=' . $check_in . '&date_to=' . $check_out . '&adults=' . $adults . '&kids=' . $kids . '&room_type=';
$CI =& get_instance();
if ($check_in == $check_out) {
$check_out = date('Y-m-d', strtotime($check_out . '+ 1 day'));
}
$CI->db->where('id', 1);
$settings = $CI->db->get('settings')->row_array();
$CI->db->where('id', $room_type_id);
$CI->db->select('room_types.*,base_price as price');
$room_type = $CI->db->get('room_types')->row_array();
// echo ''; print_r($room_type); die;
$CI->db->where('room_type_id', $room_type_id);
$CI->db->select('rooms.*,count(room_no) as total_rooms');
$rooms = $CI->db->get('rooms')->row_array();
$total_rooms = $rooms['total_rooms'];
// echo ''; print_r($rooms);die;
$begin = new DateTime($check_in);
$end = new DateTime($check_out);
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($begin, $interval, $end);
foreach ($period as $dt) {
$date = $dt->format("Y-m-d");
$dayno = $dt->format("N");
$day = $dt->format("D");
$day = strtolower($day);
if ($date >= $settings['room_block_start_date'] && $date db->where('O.room_type_id', $room_type_id);
$CI->db->where('R.date', $date);
$CI->db->select('R.*,');
$CI->db->join('orders O', 'O.id = R.order_id', 'LEFT');
$orders = $CI->db->get('rel_orders_prices R')->result_array();
// echo $total_rooms; die;
if ($total_rooms > 0) {
if (count($orders) > $total_rooms) {
$CI->session->unset_userdata('booking_data');
$CI->session->unset_userdata('coupon_data');
return 'Sorry.. This Dates Between Rooms Not Available Please Try With Another Date Or Room';
} else {
continue; // continue loop
}
} else {
$CI->session->unset_userdata('booking_data');
$CI->session->unset_userdata('coupon_data');
return 'Sorry.. This Dates Between Rooms Not Available Please Try With Another Date Or Room';
}
}
return 1;
}
Вот код моего контроллера Book.php, в котором я использую эти функции:
function index()
{
// echo ''; print_r($_GET);
// check availbilty
// get_invoice_number();
$this->session->unset_userdata('booking_data');
$this->session->unset_userdata('coupon_data');
$data['page_title'] = lang('make_reservation');
$data['meta_description'] = $this->setting->meta_description;
$data['meta_keywords'] = $this->setting->meta_keywords;
$data['banners'] = $this->homepage_model->get_banners();
$data['testimonials'] = $this->homepage_model->get_testimonials(); // get 6 testimonials
$data['room_types'] = $this->homepage_model->get_room_types_all();
$data['taxes'] = $this->homepage_model->get_taxes();
if (!empty($_GET['room_type'])) {
$data['services'] = $this->homepage_model->get_paid_services($_GET['room_type']);
}
// echo ''; print_r($data['services']);
if (empty($_GET['room_type'])) {
$this->render('book/room_types', $data);
} else {
check_availability($_GET['date_from'], $_GET['date_to'], $_GET['adults'], $_GET['kids'], $_GET['room_type']);
$data['room_type'] = $this->homepage_model->get_room_type($_GET['room_type']);
$this->render('book/view', $data);
}
}
Подробнее здесь: https://stackoverflow.com/questions/467 ... ssion-1-of
Ошибка запроса Codeigniter: «В агрегированном запросе без GROUP BY выражение № 1 списка SELECT содержит неагрегированный ⇐ Php
Кемеровские программисты php общаются здесь
1769851716
Anonymous
Мое сообщение об ошибке в платформе codeigniter:
Произошла ошибка базы данных
Error Number: 1140
In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'hms.rooms.id'; this is incompatible with sql_mode=only_full_group_by
SELECT `rooms`.*, count(room_no) as total_rooms FROM `rooms` WHERE `room_type_id` = '10'
Filename: D:/Installed_Apps/OpenServer/OpenServer/domains/hms.loc/system/database/DB_driver.php
Line Number: 691
Почему возникает такая ошибка и как ее устранить? В чем может быть проблема в коде?
В этих функциях что-то не так или всё нормально?
function check_availability($check_in, $check_out, $adults, $kids, $room_type_id)
{
$query = '?date_from='.$check_in.'&date_to='.$check_out.'&adults='.$adults.'&kids='.$kids.'&room_type=';
$CI =& get_instance();
if ($check_in == $check_out) {
$check_out = date('Y-m-d', strtotime($check_out . '+ 1 day'));
}
$CI->db->where('id', 1);
$settings = $CI->db->get('settings')->row_array();
$CI->db->where('id', $room_type_id);
$CI->db->select('room_types.*,base_price as price');
$room_type = $CI->db->get('room_types')->row_array();
// echo ''; print_r($room_type); die;
$CI->db->where('room_type_id', $room_type_id);
$CI->db->select('rooms.*,count(room_no) as total_rooms');
$rooms = $CI->db->get('rooms')->row_array();
$total_rooms = $rooms['total_rooms'];
// echo ''; print_r($rooms); die;
$begin = new DateTime($check_in);
$end = new DateTime($check_out);
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($begin, $interval, $end);
foreach ($period as $dt) {
$date = $dt->format( "Y-m-d" );
$dayno = $dt->format("N");
$day = $dt->format("D");
$day = strtolower($day);
// echo $date;die;
// check for room block period
if ($date >= $settings['room_block_start_date'] && $date session->set_flashdata('error', $block_message);
redirect('');
}
$CI->db->where('O.room_type_id', $room_type_id);
$CI->db->where('R.date', $date);
$CI->db->select('R.*,');
$CI->db->join('orders O', 'O.id = R.order_id', 'LEFT');
$orders = $CI->db->get('rel_orders_prices R')->result_array();
// echo ''; print_r($orders); die;
// echo $total_rooms;die;
if ($total_rooms > 0) {
//echo count($orders); die;
if (count($orders) >= $total_rooms) {
$CI->session->unset_userdata('booking_data');
$CI->session->unset_userdata('coupon_data');
$CI->session->set_flashdata('error', "Sorry.. This Dates Between Rooms Not Available Please Try With Another Date Or Room");
redirect('front/book/index' . $query);
} else {
continue; // continue loop
}
} else {
$CI->session->unset_userdata('booking_data');
$CI->session->unset_userdata('coupon_data');
$CI->session->set_flashdata('error', "Sorry.. This Dates Between Rooms Not Available Please Try With Another Date Or Room");
redirect('front/book/index' . $query);
}
}
return;
}
function check_availability_ajax($check_in, $check_out, $adults, $kids, $room_type_id)
{
$query = '?date_from=' . $check_in . '&date_to=' . $check_out . '&adults=' . $adults . '&kids=' . $kids . '&room_type=';
$CI =& get_instance();
if ($check_in == $check_out) {
$check_out = date('Y-m-d', strtotime($check_out . '+ 1 day'));
}
$CI->db->where('id', 1);
$settings = $CI->db->get('settings')->row_array();
$CI->db->where('id', $room_type_id);
$CI->db->select('room_types.*,base_price as price');
$room_type = $CI->db->get('room_types')->row_array();
// echo ''; print_r($room_type); die;
$CI->db->where('room_type_id', $room_type_id);
$CI->db->select('rooms.*,count(room_no) as total_rooms');
$rooms = $CI->db->get('rooms')->row_array();
$total_rooms = $rooms['total_rooms'];
// echo ''; print_r($rooms);die;
$begin = new DateTime($check_in);
$end = new DateTime($check_out);
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($begin, $interval, $end);
foreach ($period as $dt) {
$date = $dt->format("Y-m-d");
$dayno = $dt->format("N");
$day = $dt->format("D");
$day = strtolower($day);
if ($date >= $settings['room_block_start_date'] && $date db->where('O.room_type_id', $room_type_id);
$CI->db->where('R.date', $date);
$CI->db->select('R.*,');
$CI->db->join('orders O', 'O.id = R.order_id', 'LEFT');
$orders = $CI->db->get('rel_orders_prices R')->result_array();
// echo $total_rooms; die;
if ($total_rooms > 0) {
if (count($orders) > $total_rooms) {
$CI->session->unset_userdata('booking_data');
$CI->session->unset_userdata('coupon_data');
return 'Sorry.. This Dates Between Rooms Not Available Please Try With Another Date Or Room';
} else {
continue; // continue loop
}
} else {
$CI->session->unset_userdata('booking_data');
$CI->session->unset_userdata('coupon_data');
return 'Sorry.. This Dates Between Rooms Not Available Please Try With Another Date Or Room';
}
}
return 1;
}
Вот код моего контроллера Book.php, в котором я использую эти функции:
function index()
{
// echo ''; print_r($_GET);
// check availbilty
// get_invoice_number();
$this->session->unset_userdata('booking_data');
$this->session->unset_userdata('coupon_data');
$data['page_title'] = lang('make_reservation');
$data['meta_description'] = $this->setting->meta_description;
$data['meta_keywords'] = $this->setting->meta_keywords;
$data['banners'] = $this->homepage_model->get_banners();
$data['testimonials'] = $this->homepage_model->get_testimonials(); // get 6 testimonials
$data['room_types'] = $this->homepage_model->get_room_types_all();
$data['taxes'] = $this->homepage_model->get_taxes();
if (!empty($_GET['room_type'])) {
$data['services'] = $this->homepage_model->get_paid_services($_GET['room_type']);
}
// echo ''; print_r($data['services']);
if (empty($_GET['room_type'])) {
$this->render('book/room_types', $data);
} else {
check_availability($_GET['date_from'], $_GET['date_to'], $_GET['adults'], $_GET['kids'], $_GET['room_type']);
$data['room_type'] = $this->homepage_model->get_room_type($_GET['room_type']);
$this->render('book/view', $data);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/46722486/codeigniter-query-error-in-aggregated-query-without-group-by-expression-1-of[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия