SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 08.11.2014 23:03:40

twixi007
Участник
Зарегистрирован: 08.11.2014
Сообщений: 1

Opencart - правильный запрос

здравствуйте, может кто подскажет!

Как правильно изменить запрос в файле, если у меня отдельные таблицы в БД вида oc_autolux_city и oc_autolux_adress и аналоги?
А не стандыртные oc_country и oc_zone как для новой почты (в архиве)....

БД - было так:
[MYSQL]DROP TABLE IF EXISTS `oc_country`;
CREATE TABLE IF NOT EXISTS `oc_country` (
`country_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(128) NOT NULL,
`iso_code_2` varchar(2) NOT NULL,
`iso_code_3` varchar(3) NOT NULL,
`address_format` text NOT NULL,
`postcode_required` tinyint(1) NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`country_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5369 ;

DROP TABLE IF EXISTS `oc_zone`;
CREATE TABLE IF NOT EXISTS `oc_zone` (
`zone_id` int(11) NOT NULL AUTO_INCREMENT,
`country_id` int(11) NOT NULL,
`name` varchar(128) NOT NULL,
`code` varchar(32) NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`zone_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1490 ;[/MYSQL]

а нужно что-бы запрос работал в бд так:

[MYSQL]DROP TABLE IF EXISTS `oc_autolux_city`;
CREATE TABLE IF NOT EXISTS `oc_autolux_city` (
`city_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(128) NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`city_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5369 ;

DROP TABLE IF EXISTS `oc_autolux_adress`;
CREATE TABLE IF NOT EXISTS `oc_autolux_adress` (
`adress_id` int(11) NOT NULL AUTO_INCREMENT,
`city_id` int(11) NOT NULL,
`name` varchar(128) NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`adress_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1490 ;[/MYSQL]

\catalog\model\shipping\autolux.php
как этот запрос сделать, чтобы он брал данные о стране из таблицы zone_to_geo_zone и из таблиц города oc_autolux_city и таблицы адресов отделений oc_autolux_adress ?

[PHP]f ($this->config->get('autolux_status')) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone_to_geo_zone WHERE geo_zone_id = '" . (int) $this->config->get('autolux_geo_zone_id') . "' AND country_id = '" . (int) $address['country_id'] . "' AND (zone_id = '" . (int) $address['zone_id'] . "' OR zone_id = '0')");

if (!$this->config->get('autolux_geo_zone_id')) {
$status = TRUE;
} elseif ($query->num_rows) {
$status = TRUE;
} else {
$status = FALSE;
}
} else {
$status = FALSE;
}[/PHP]

Структура oc_zone_to_geo_zone :
[MYSQL]CREATE TABLE IF NOT EXISTS `oc_zone_to_geo_zone` (
  `zone_to_geo_zone_id` int(11) NOT NULL AUTO_INCREMENT,
  `country_id` int(11) NOT NULL,
  `zone_id` int(11) NOT NULL DEFAULT '0',
  `geo_zone_id` int(11) NOT NULL,
  `date_added` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `date_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`zone_to_geo_zone_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=67 ;[/MYSQL]

Структура oc_country
[MYSQL]CREATE TABLE IF NOT EXISTS `oc_country` (
  `country_id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(128) NOT NULL,
  `iso_code_2` varchar(2) NOT NULL,
  `iso_code_3` varchar(3) NOT NULL,
  `address_format` text NOT NULL,
  `postcode_required` tinyint(1) NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`country_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=252 ;[/MYSQL]

https://yadi.sk/d/LoItjw65caaUd - исходиники

Отредактированно twixi007 (08.11.2014 23:04:08)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson