Ответов: 7 Просмотров: 287
|
Такая тема.
Есть база, в ней есть некий инструмент, для добавления наших оплат поставщикам. Таблица в MySQL вида
CODE ( SQL):
скопировать код в буфер обмена
CREATE TABLE IF NOT EXISTS `oplata_to` ( `oplata_id` int(11) NOT NULL AUTO_INCREMENT, `zayvka_id` int(11) NOT NULL DEFAULT '0', `opl_date` date DEFAULT NULL, `summa` decimal(11,2) NOT NULL DEFAULT '0.00', `summa_rur` decimal(11,2) DEFAULT NULL, `money_type` char(3) DEFAULT NULL, `kurs` float DEFAULT NULL, `kurs_pr` float NOT NULL DEFAULT '0', `commets` text, `avtor_id` int(11) DEFAULT NULL, `slot` int(11) DEFAULT NULL, PRIMARY KEY (`oplata_id`), KEY `opl_date` (`opl_date`), KEY `zayvka_id` (`zayvka_id`), KEY `avtor_id` (`avtor_id`) ) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3922 ;
Есть код, который записывает в эту таблицу сумму, автора, айди заявки по которой происходит оплата, порядковый номер оплаты в отдельно взятой заявке, создает айди самой оплаты. Выглядит примерно так:
PHP:
скопировать код в буфер обмена
<TD align=middle><INPUT <?= $pay_edit_lock?> class=texts size=4 maxLength=10 value="<? $kbname="oplto_tour_kurs_base".$oplat_num; echo $$kbname; ?>" name=oplto_tour_kurs_base<?=$oplat_num?> onchange="kurs_recalc(z.oplto1_kurs<?=$oplat_num?>,z.oplto1_kurs_pr<?=$oplat_num?>,z.oplto_tour_kurs_base<?=$oplat_num?>);payment_to_rur_val(oplto1_tourist<?=$oplat_num?>, oplto1_kurs<?=$oplat_num?>,oplto1_sum<?=$oplat_num?>,oplto1_curr<?=$oplat_num?>)"> +<INPUT <?= $pay_edit_lock?> class=texts maxLength=30 onchange="kurs_recalc(z.oplto1_kurs<?=$oplat_num?>,z.oplto1_kurs_pr<?=$oplat_num?>,z.oplto_tour_kurs_base<?=$oplat_num?>);payment_to_rur_val(oplto1_tourist<?=$oplat_num?>, oplto1_kurs<?=$oplat_num?>,oplto1_sum<?=$oplat_num?>,oplto1_curr<?=$oplat_num?>);" size=4 name=oplto1_kurs_pr<?=$oplat_num?> value="<?=$RowOP['kurs_pr']?>">% = <INPUT <?= $pay_edit_lock?> class=texts maxLength=30 onchange="kurs_recalc(z.oplto1_kurs<?=$oplat_num?>,z.oplto1_kurs_pr<?=$oplat_num?>,z.oplto_tour_kurs_base<?=$oplat_num?>);payment_to_rur_val(oplto1_tourist<?=$oplat_num?>, oplto1_kurs<?=$oplat_num?>,oplto1_sum<?=$oplat_num?>,oplto1_curr<?=$oplat_num?>)" size=4 name=oplto1_kurs<?=$oplat_num?> value="<?=$RowOP['kurs']?>"> </TD> <TD align=middle><INPUT <?= $pay_edit_lock?> class=texts maxLength=30 onchange="payment_to_rur_val(oplto1_tourist<?=$oplat_num?>, oplto1_kurs<?=$oplat_num?>,oplto1_sum<?=$oplat_num?>,oplto1_curr<?=$oplat_num?>)" size=8 name=oplto1_tourist<?=$oplat_num?> value="<?=$RowOP['summa']?>"></TD> <TD align=middle<? $name="oplto1_sum".$oplat_num; if($oplata_not_filled[$name]!="") echo " bgcolor=\"Red\""; ?>><INPUT <?= $pay_edit_lock?> class=texts maxLength=30 size=8 name=oplto1_sum<?=$oplat_num?> value="<?=$RowOP['summa_rur']?>" <?=!$show_link && !$pay_edit_lock?"id='oplto1_last_rur'":""?>></TD> </TD> <TD align="left" class="text"><INPUT <?= $pay_edit_lock?> class=texts maxLength=255 size=70 name=oplto1_info<?=$oplat_num?> value="<?=$RowOP['commets']?>"> <INPUT <?= $pay_edit_lock?> type=hidden value="<? if($RowOP['avtor_id']=="") echo $USER_ID ; else echo $RowOP['avtor_id']; ?>" name=oplto1_avtor_id<?=$oplat_num?>> <? $r_opl_user = mysql_query("SELECT * FROM {$_SESSION["picked_legal "]}.`users` where id='".$RowOP['avtor_id']."'"); if($RowOP['avtor_id']=="") $r_opl_user = mysql_query("SELECT * FROM {$_SESSION["picked_legal "]}.`users` where id='".$USER_ID."'"); if($RowOP_USER['fio']!="") echo $mod_not_saved."Обр.: ".$RowOP_USER['fio'].$mod_not_saved2; ?> <INPUT <?= $pay_edit_lock?> type=hidden value="<?=$RowOP['slot']?>" name=oplto1_slot<?=$oplat_num?>> </TD>
Фишка в том, что все работает вроде, но! Первая оплата добавляется абсолютно всегда! Вторая на 99% тоже, по крайней мере я не помню, чтоб были косяки. а вот третья - уже проблемы. НО! Самое смешное, что иногда третья добавляется без проблем, а вот четвертая - не в какую. тупо не создается запись в базе. А сегодня вообще прикол - не добавляется тринадцатая строка! т.е. 12 были добавлены успешно, а вот 13 - нет.
В чем прикол - не могу понять. |