не вставляются записи в базу данных при помощи php скрипта

kuzkas

Новичок
причем на хостинг сервере все отлично работает, этот сайт заказывали , а сейчас появилась необходимость его изменить, установила на свой комп apache+php+mysql+smarty+phpmyadmin, правлю php и tpl скрипты для отображения все отлично работает, тестится и 1 скрипт на добавление в базу "Отправить заявку" срабатывает, а вот 3 скрипта на добавление нового пользователя, обновления прайс-листа и обновления каталога - нет, премиленько удаляют все записи из базы, а добавлять отказываются... если добавлять записи непосредственно из phpmyadmin - все работает....... не могу найти причину... всю голову уже сломала... может где в настройках .... скрипты с заявкой и пользователем сравнила, идентичные по добавлению... и если на хостинг сервере работает значит причина не в скрипте.... подключаюсь к БД с правами пользователя root
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
что пишет, какие ошибки? Структура таблиц и запросы какие?
 

kuzkas

Новичок
<?
class PriceTable extends ModuleTable
{
var $classname = 'Price';

function DelDir($directory) {
$dir = opendir($directory);
while(($file = readdir($dir))) {
if (is_file($directory."/".$file)) {
unlink ($directory."/".$file);
} elseif (is_dir($directory."/".$file) && ($file!=".") && ($file != "..")) {
full_del_dir ($directory."/".$file);
}
}

closedir ($dir);
#rmdir ($directory);
}

function init () {
$sPath = '../files/db_price/';
$dDir = opendir($sPath);
$aFileList=array();
while ($sFileName=readdir($dDir)) {
if ($sFileName!='.' && $sFileName!='..') {
$aFileList[]=$sFileName;
}
sort($aFileList);
}
closedir ($dDir);
$iNumFiles=count($aFileList);

if ($iNumFiles!=0) {

$del_price = &new Price();
$del_price->query ('TRUNCATE '.$del_price->__table);
$this->DelDir('../files/price/');

foreach ($aFileList as $k=>$file) {
if (strtolower(substr($file,strlen($file)-4))=='html') {
$bufer = substr($file,0,strlen($file)-5);
$date = substr($bufer,strlen($bufer)-9,strlen($bufer));
$name = substr($bufer,0,strlen($bufer)-9);

$add = &new Price();
$add->pr_name = $name;
$add->pr_date = $date;
$add->update();

if (file_exists($sPath.$file)) {
copy($sPath.$file,'../files/price/price_'.$add->pr_name.'.html');
}

$update_file = &new Price();
$update_file->pr_id = $add->pr_id;
$update_file->pr_file = '/files/price/price_'.$add->pr_name.'.html';
$update_file->update();
} else {
$name = substr($file,0,strlen($file)-5);

$add = &new Price();
$add->pr_name = $name;
$add->pr_date = date('d.m.Y');
$add->update();

if (file_exists($sPath.$file)) {print_r($name);
copy($sPath.$file,'../files/price/'.$file);
}

$update_file = &new Price();
$update_file->pr_id = $add->pr_id;
$update_file->pr_file = '/files/price/'.$file;
$update_file->update();
}
unlink($sPath.$file);
}
}
}
}
?>


<?
require_once BACK_DIR_ABS . '/includes/access.php';
require_once BACK_DIR_ABS.'/modules/common/access/gallery.php';

class Price extends Access
{
var $pr_id;

var $pr_name;
var $pr_file;
var $pr_date;

var $pr_isactive;
var $pr_pos;

var $prefix = 'pr_';

function setFrom ($array)
{
parent::setFrom ($array);
}
}
?>

это обновление прайс-листа, все записи из таблицы старые удаляются, из каталога в каталог копируются, а в БД не добавляются..
 

kuzkas

Новичок
ОШИБКИ:

Warning: Call-time pass-by-reference has been deprecated in D:\server\aist76.ru\admin\modules\moduletable.php on line 431

Warning: Call-time pass-by-reference has been deprecated in D:\server\aist76.ru\admin\modules\moduletable.php on line 446

Notice: Undefined index: 0 in D:\server\aist76.ru\admin\tpl\c\back\%%47^470^470AABD1%%tree.tpl.php on line 5
 

kuzkas

Новичок
$item = &new $this->classname;
$item->{$fildparent} = isset ($_GET[$fildparent]) ? $_GET[$fildparent] : null;
ModuleFront::getBranch ($item, &$tree , array('title'=>$setting->TableTitle (), 'sub_title'=>$setting->TableSubTitle())); //строка 431
$this->buildCreateTable (&$rows[$i]);// строка 446
 

kuzkas

Новичок
function update ()
{
$ret = false;
if ($this->isEdit ())
{
$idfield = $this->_id;
$classname = get_class ($this);
$this->old = new $classname;
$this->old->get ($this->$idfield);
if ((($result = parent::update ()) > 0) || $this->isPresentUploadedFiles ())
{
$this->updatePos ('update');
$ret = $this->updateFiles ();
$this->backups ();
}
} else
{
if (($result = parent::insert ()) > 0)
{
$this->updatePos ('insert');
$ret = $this->updateFiles ();
}
}
return $result || $ret;
}
 

kuzkas

Новичок
mysql_error() не знаю куда здесь вставлять... в загрузке прайс-листов после update();
он ничего не показал..
 

kuzkas

Новичок
а загрузка каталога, как начинается так и продолжается до бесконечности, хотя на хостинг-сервере ей хватает 30 мин для обработки всей базы (~5500 записей), удаляются все наименования, добавления не происходит...
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
kuzkas
Спешу заверить, если вы ничего не понимаете в том, что делаете, то стоит нанять спеца, за деньги. Он это сделает гораздо быстрей и лучше вас. Без обид. Если же вы учитесь, то надо учиться отлаживать свои скрипты.

http://phpfaq.ru/debug < тут написано как отлаживать.

Большие куски кода тут постить не надо, надо постить на pastebin или выкладывать те места, обрамленные тегами [ php ] [/ php ] в которых вы сомневаетесь.
 

kuzkas

Новичок
я учусь... и это первый сайт с которым я работаю, дело в том что этот код работает на другом компе и я подумала, что посмотрев на функции в целом, Вы могли бы подсказать мне может для какой-то нужна специальная бибилиотека, которой нет на моем компе, я не нашла... я выложила, то что вы попросили код, структуру таблиц и ошибки, которые увидела.... жесть так жесть...
 

KorP

Новичок
надо 2 библитиотеки - мозг и руки, при чём они должны быть чётко взаимосвязаны
я учусь... и это первый сайт с которым я работаю
так вот надо сначала научится, понять для начала основы, а потом уже лезть чужие классы ковырять
 

kuzkas

Новичок
я читала книги про php и знаю по себе пока не пойду ковырять ничего в моей голове не отложится
 

KorP

Новичок
я читала книги про php и знаю по себе пока не пойду ковырять ничего в моей голове не отложится
практика и ковыряние чужих наработок - разные вещи, без первого, понять второе крайне сложно, имея только теорию
 

kuzkas

Новичок
удачи в поиске
кстати, вы меня и натолкнули на мысль обратить внимание на классы, что привло к папке pear в директории сайта, я его установила (раньше это была только копия с сервера), перетащила туда все папки, которых не хватало и все заработало....
 
Сверху