BesTim
14.11.2012 - 12:36
Всем привет! Столкнулся с такой проблемой...
1) Есть сайт (интернет-магазин) на движке Joomla 1.5
2) Я добавил в БД с именем jos_catalog_items новый столбец
3) После этого перестали добавляться товары на сайт: если добавляю товар, то он добавляется взамен товара с максимальным ID...
Если кто-нибудь сталкивался с подобным, или просто знает в каком направлении копать, то подскажите, пожалуйста!
Игорь_Vasinsky
14.11.2012 - 13:15
сделай для новых столбцов default '0'
id - auto_increment?
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
BesTim
14.11.2012 - 14:05
Попробовал поменять default - не получилось...
jetistyum
14.11.2012 - 14:28
наверное ты не только колонку добавил, но и код поменял ... надо смотреть запрос, который происходит при добавлении записи
BesTim
14.11.2012 - 14:53
Игорь_Vasinsky
Да, значение для ID стоит auto_increment...
jetistyum
Код-то я менял...но он точно не влияет,так как добавлял столбец и без изменения кода,все-равно не работало...дело именно в столбце. А как посмотреть запрос,который при добавлении записи происходит?
Игорь_Vasinsky
14.11.2012 - 14:57
ну ты же INSERT делаешь, а id auto_increment - тут не может такого быть что ты меняешь запись, должна строго происходить вставка новой строки с ID + 1
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
BesTim
14.11.2012 - 15:06
Игорь_VasinskyЯ тоже был уверен,что должно работать, но видимо где-то что-то не так...
Попробую подробнее описать:
1) Чтобы добавить материал, я копирую старый материал с последующим сохранением
2) При сохранении нового материала идет запрос
index.
php?option=com_catalog&controller=items©=1&task=edit&cid[]=2658#
3) Функция, которая обрабатывает этот запрос имеет код
function copy() {
$array = JRequest::getVar('cid', 0, '', 'array');
$id = (int) $array[0];
$link = 'index.php?option=com_catalog&controller=items©=1&task=edit&cid[]=' . $id;
$this->setRedirect($link, $msg);
}
Игорь_Vasinsky
14.11.2012 - 15:13
ну и что там в index.php по этому поводу говориться?
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
BesTim
14.11.2012 - 15:13
Предыдущий код отвечал за копирование старого материала..
А вот код,который отвечает за его сохранение
function save() {
$model = $this->getModel('item');
if ( $model->store($post) ) {
$msg = JText::_( 'Ok' );
} else {
$msg = JText::_( 'Error :(' );
}
$link = 'index.php?option=com_catalog&controller=items&type_id=' . $_REQUEST['type_id'];
$this->setRedirect($link, $msg);
}
BesTim
14.11.2012 - 15:16
Вот файл index.
php<?php
error_reporting(0);
@version @package @copyright @license
define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(__FILE__) );
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
JDEBUG ? $_PROFILER->mark( 'afterLoad' ) : null;
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
JPluginHelper::importPlugin('system');
JDEBUG ? $_PROFILER->mark('afterInitialise') : null;
$mainframe->triggerEvent('onAfterInitialise');
$mainframe->route();
$Itemid = JRequest::getInt( 'Itemid');
$mainframe->authorize($Itemid);
JDEBUG ? $_PROFILER->mark('afterRoute') : null;
$mainframe->triggerEvent('onAfterRoute');
$option = JRequest::getCmd('option');
$mainframe->dispatch($option);
JDEBUG ? $_PROFILER->mark('afterDispatch') : null;
$mainframe->triggerEvent('onAfterDispatch');
if(!isset($_COOKIE['cartid']))
{
$cart_id = intval( rand(1, 1000) + rand(1, 200) - rand(1, 345) + rand(1, 657) - rand(765, 1000) );
setcookie( 'cartid', $cart_id, time() + 31000000, '/' );
}
$mainframe->render();
JDEBUG ? $_PROFILER->mark('afterRender') : null;
$mainframe->triggerEvent('onAfterRender');
echo JResponse::toString($mainframe->getCfg('gzip'));
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.