Консультация № 185924
29.04.2012, 17:44
79.42 руб.
0 3 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:

имеется файл PHP
Код:
<?php
defined('_JEXEC') or die('Restricted access');

class Tablejob extends JTable {
var $id = null;
var $job_title = null;
var $employer_id = null;
var $id_degree_level = null;
var $id_pos_type = null;
var $id_salary_type = null;
var $id_job_exp = null;
var $id_job_spec = null;
var $salary = null;
var $currency_salary = null;
var $id_country = null;
var $state = null;
var $city = null;
var $short_desc = null;
var $long_desc = null;
var $publish_date = null;
var $expire_date = null;
var $is_active = null;
var $is_featured = null;
var $glng = null;
var $glat = null;
var $gzoom = null;
var $address_geocode = null;
var $hotjob_expire = null;
var $manage_applicant= null;
var $ext_apply_url = null;

/**
* @param database A database connector object
*/
function __construct(&$db){
parent::__construct('#__jbjobs_job', 'id', $db);
}
}
?>

он ли прописывает значение в таблицу
Код:
--
-- Структура таблицы `jos_jbjobs_job`
--

CREATE TABLE IF NOT EXISTS `jos_jbjobs_job` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`job_title` varchar(100) NOT NULL DEFAULT '',
`employer_id` int(11) DEFAULT NULL,
`id_degree_level` int(11) NOT NULL DEFAULT '0',
`id_pos_type` int(11) NOT NULL DEFAULT '0',
`id_salary_type` int(11) NOT NULL DEFAULT '0',
`id_job_exp` int(11) NOT NULL DEFAULT '0',
`id_job_spec` int(11) NOT NULL DEFAULT '0',
`salary` float DEFAULT NULL,
`currency_salary` char(10) DEFAULT NULL,
`id_country` int(11) NOT NULL DEFAULT '0',
`state` varchar(100) NOT NULL DEFAULT '',
`city` varchar(100) NOT NULL DEFAULT '',
`short_desc` tinytext,
`long_desc` mediumtext,
`publish_date` datetime DEFAULT '0000-00-00 00:00:00',
`expire_date` datetime DEFAULT '0000-00-00 00:00:00',
`is_active` char(1) NOT NULL DEFAULT 'y',
`is_featured` tinyint(1) NOT NULL DEFAULT '0',
`hits` int(11) NOT NULL DEFAULT '0',
`glng` varchar(15) DEFAULT NULL,
`glat` varchar(15) DEFAULT NULL,
`gzoom` varchar(2) DEFAULT NULL,
`address_geocode` varchar(250) DEFAULT NULL,
`hotjob_expire` datetime DEFAULT '0000-00-00 00:00:00',
`manage_applicant` tinyint(1) NOT NULL DEFAULT '0',
`ext_apply_url` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;


что в него же добавить чтобы он прописывал еще значения и в другую таблицу
Код:
CREATE TABLE IF NOT EXISTS `jos_zhyandexmaps_markers` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`catid` int(11) NOT NULL DEFAULT '0',
`title` varchar(250) NOT NULL DEFAULT '',
`latitude` varchar(20) NOT NULL DEFAULT '',
`longitude` varchar(20) NOT NULL DEFAULT '',
`mapid` int(11) NOT NULL DEFAULT '0',
`openbaloon` tinyint(1) NOT NULL DEFAULT '0',
`icontype` varchar(50) NOT NULL DEFAULT '',
`description` text NOT NULL,
`descriptionhtml` text NOT NULL,
`hrefsite` text NOT NULL,
`hrefimage` text NOT NULL,
`hrefsitename` text NOT NULL,
`markergroup` int(11) NOT NULL DEFAULT '0',
`showiconcontent` tinyint(1) NOT NULL DEFAULT '0',
`published` tinyint(1) NOT NULL DEFAULT '0',
`createdbyuser` int(11) NOT NULL DEFAULT '0',
`markercontent` tinyint(1) NOT NULL DEFAULT '0',
`userprotection` tinyint(1) NOT NULL DEFAULT '0',
`contactid` int(11) NOT NULL DEFAULT '0',
`iconofsetx` tinyint(1) NOT NULL DEFAULT '0',
`iconofsety` tinyint(1) NOT NULL DEFAULT '0',
`showcontact` tinyint(1) NOT NULL DEFAULT '0',
`showuser` tinyint(1) NOT NULL DEFAULT '0',
`publish_up` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`publish_down` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`actionbyclick` tinyint(1) NOT NULL DEFAULT '1',
`zoombyclick` int(3) NOT NULL DEFAULT '100',
`params` text NOT NULL,
`attribute1` text NOT NULL,
`attribute2` text NOT NULL,
`attribute3` text NOT NULL,
`attribute4` text NOT NULL,
`attribute5` text NOT NULL,
`attribute6` text NOT NULL,
`attribute7` text NOT NULL,
`attribute8` text NOT NULL,
`attribute9` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;


`id` -`id`
`catid` - по умолчанию 18
`job_title` - `title`

примерно так, но чтобы дополнительно добавлял в таблицу #__zhyandexmaps_markers
или этот файл не отвечает за это действие
есть другие

Обсуждение

давно
Старший Модератор
312929
1973
30.04.2012, 03:56
общий
А какой у Вас "движок" (в смысле - CMS) на сайте? Случайно не Joomla?
Неизвестный
30.04.2012, 11:46
общий
Да именно так
давно
Старший Модератор
312929
1973
30.04.2012, 17:41
общий
это ответ
Здравствуйте, Чумак Дмитрий Иванович!

В Joomla для работы с базами данных используется абстрактный класс JTable, содержащий все необходимые функции. При этом для каждой таблицы нужно создать новый подкласс, который должен быть расположен в отдельном файле в каталоге tables (в административной части компонента). Имя подкласса должно начинаться с Table. Глобальные свойства подкласса должны соответствовать полям таблицы и иметь такие же названия.

В данном случае файл (называющийся, скорее всего, job.php или jbjobs_job.php) содержит только описание подкласса Tablejob для работы с таблицей jos_jbjobs_job. Заполнение таблицы (и вообще любые операции с ней) будет в другом месте. Чтобы работать с таблицей jos_zhyandexmaps_markers, нужно создать в том же подкаталоге файл jos_zhyandexmaps_markers.php примерно следующего содержания:
[code lang=php]<?php
defined('_JEXEC') or die('Restricted access');

class TableMarkers extends JTable {
var $id = null;
var $catid = null;
var $title = null;
var $latitude = null;
var $longitude = null;
var $mapid = null;
var $openbaloon = null;
var $icontype = null;
var $description = null;
var $descriptionhtml= null;
var $hrefsite = null;
var $hrefimage = null;
var $hrefsitename = null;
var $markergroup = null;
var $showiconcontent= null;
var $published = null;
var $createdbyuser = null;
var $markercontent = null;
var $userprotection = null;
var $contactid = null;
var $iconofsetx = null;
var $iconofsety = null;
var $showcontact = null;
var $showuser = null;
var $publish_up = null;
var $publish_down = null;
var $actionbyclick = null;
var $zoombyclick = null;
var $params = null;
var $attribute1 = null;
var $attribute2 = null;
var $attribute3 = null;
var $attribute4 = null;
var $attribute5 = null;
var $attribute6 = null;
var $attribute7 = null;
var $attribute8 = null;
var $attribute9 = null;

/**
* @param database A database connector object
*/
function __construct(&$db){
parent::__construct('#__zhyandexmaps_markers', 'id', $db);
}
}
?>[/code]

Для дальнейшей работы с таблицей нужно создать соответствующий объект. Это делается так:

[code lang=php]JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables');
$table = JTable::getInstance('Markers', 'Table');[/code]

Для выполнения операций с таблицей нужно будет вызывать соответствующие методы для объекта $table. Например, добавление новой записи в таблицу будет выглядеть примерно так:

[code lang=php]$table->reset();
$table->set('catid', 18);
$table->set('title', "Title");
$table->save();[/code]

Для полей, чьи значения не заданы функцией set, будет установлено значение по умолчанию (то, которое указано в опции DEFAULT для соответствующего поля команды CREATE).
Форма ответа