У меня есть две таблицы: города и coutries.Результаты поиска Grocerycrud
CREATE TABLE IF NOT EXISTS `cities` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`country_id` int(10) not null,
`city` varchar(255) NOT NULL,
`active` int(1) not null,
PRIMARY KEY (`id`),
FOREIGN KEY (country_id) REFERENCES countries (id)
) ENGINE=MyISAM;
CREATE TABLE IF NOT EXISTS `countries` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`country` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
Мой контроллер:
public function cities() {
$crud = new grocery_CRUD();
$crud->set_theme('flexigrid');
$crud->set_table('cities');
$crud->where('active', 1);
$crud->set_relation('country_id', 'countries', 'country');
$output = $crud->render();
$this->_example_output($output);
}
public function countries() {
$crud = new grocery_CRUD();
$crud->set_theme('flexigrid');
$crud->set_table('countries');
$output = $crud->render();
$this->_example_output($output);
}
Если я пытаюсь найти слово «Tor» я бы ожидал увидеть 1 строк, но я буду получать все строки! Зачем?
Мой выбор это:
SELECT `cities`.*, j93bfec8a.country AS s93bfec8a
FROM `cities`
LEFT JOIN `countries` as `j93bfec8a` ON `j93bfec8a`.`id` = `cities`.`country_id`
WHERE `active` =0
OR `j93bfec8a`.`country` LIKE '%Tor%' ESCAPE '!'
OR `city` LIKE '%Tor%' ESCAPE '!'
OR `active` LIKE '%Tor%' ESCAPE '!'
HAVING `active` =0
LIMIT 5
города таблице:
id country_id city active
1 2 Paris 1
2 2 Strasbourg 1
3 1 Torino 0
4 1 Milano 1
6 1 Rome 0
страны таблица:
id country
1 Italy
2 France
Кто-то, чтобы помочь мне, пожалуйста!
Я использую grocerycrud v1.5.2 и codeigniter v3.0.3.
Вы ожидаете 1 строку, но я не могу понять, если это правильно или нет. Я понятия не имею, как выглядит таблица городов. Также не уверен, почему вы определяете escape-символ. – rajah9
извините! результат находится на рис.: http://i67.tinypic.com/316tdo9.jpg – corn
и grocerycrud генерирует sql с escape-символом. – corn