Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите разобраться в странной работе кода

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
anton1488
Отправлено: 13 Ноября, 2014 - 17:03:21
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июль 2014  


Помог: 0 раз(а)




Такая тема.

Есть база, в ней есть некий инструмент, для добавления наших оплат поставщикам. Таблица в MySQL вида
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE IF NOT EXISTS `oplata_to` (
  2.   `oplata_id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `zayvka_id` int(11) NOT NULL DEFAULT '0',
  4.   `opl_date` date DEFAULT NULL,
  5.   `summa` decimal(11,2) NOT NULL DEFAULT '0.00',
  6.   `summa_rur` decimal(11,2) DEFAULT NULL,
  7.   `money_type` char(3) DEFAULT NULL,
  8.   `kurs` float DEFAULT NULL,
  9.   `kurs_pr` float NOT NULL DEFAULT '0',
  10.   `commets` text,
  11.   `avtor_id` int(11) DEFAULT NULL,
  12.   `slot` int(11) DEFAULT NULL,
  13.   PRIMARY KEY (`oplata_id`),
  14.   KEY `opl_date` (`opl_date`),
  15.   KEY `zayvka_id` (`zayvka_id`),
  16.   KEY `avtor_id` (`avtor_id`)
  17. ) ENGINE=InnoDB  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3922 ;


Есть код, который записывает в эту таблицу сумму, автора, айди заявки по которой происходит оплата, порядковый номер оплаты в отдельно взятой заявке, создает айди самой оплаты. Выглядит примерно так:

PHP:
скопировать код в буфер обмена
  1. <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?>)">
  2.                             +<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']?>">% =
  3.                             <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']?>">
  4.  
  5.                             </TD>
  6.                             <TD align=middle><INPUT <?= $pay_edit_lock?> class=texts maxLength=30
  7.                               onchange="payment_to_rur_val(oplto1_tourist<?=$oplat_num?>, oplto1_kurs<?=$oplat_num?>,oplto1_sum<?=$oplat_num?>,oplto1_curr<?=$oplat_num?>)"
  8.                               size=8 name=oplto1_tourist<?=$oplat_num?> value="<?=$RowOP['summa']?>"></TD>
  9.                             <TD align=middle<? $name="oplto1_sum".$oplat_num; if($oplata_not_filled[$name]!="") echo " bgcolor=\"Red\""; ?>><INPUT <?= $pay_edit_lock?> class=texts maxLength=30
  10.                               size=8 name=oplto1_sum<?=$oplat_num?> value="<?=$RowOP['summa_rur']?>" <?=!$show_link && !$pay_edit_lock?"id='oplto1_last_rur'":""?>></TD>
  11.                             </TD>
  12.                             <TD align="left" class="text"><INPUT <?= $pay_edit_lock?> class=texts maxLength=255
  13.                               size=70
  14.                               name=oplto1_info<?=$oplat_num?> value="<?=$RowOP['commets']?>">
  15.                             <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?>>
  16.                             <?
  17.                                           $r_opl_user = mysql_query("SELECT * FROM {$_SESSION["picked_legal"]}.`users` where id='".$RowOP['avtor_id']."'");
  18.                                                                                   if($RowOP['avtor_id']=="")  $r_opl_user = mysql_query("SELECT * FROM {$_SESSION["picked_legal"]}.`users` where id='".$USER_ID."'");
  19.                                           $RowOP_USER = @mysql_fetch_assoc($r_opl_user);
  20.                                           if($RowOP_USER['fio']!="") echo $mod_not_saved."Обр.: ".$RowOP_USER['fio'].$mod_not_saved2;
  21.                             ?>
  22.                             <INPUT <?= $pay_edit_lock?> type=hidden value="<?=$RowOP['slot']?>" name=oplto1_slot<?=$oplat_num?>>
  23.                             </TD>


Фишка в том, что все работает вроде, но! Первая оплата добавляется абсолютно всегда! Вторая на 99% тоже, по крайней мере я не помню, чтоб были косяки. а вот третья - уже проблемы. НО! Самое смешное, что иногда третья добавляется без проблем, а вот четвертая - не в какую. тупо не создается запись в базе. А сегодня вообще прикол - не добавляется тринадцатая строка! т.е. 12 были добавлены успешно, а вот 13 - нет.

В чем прикол - не могу понять.
 
 Top
esterio
Отправлено: 13 Ноября, 2014 - 17:07:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




уберите все @ по коду и включите вивод ошибок. многое узнаете нового наверно
 
 Top
anton1488
Отправлено: 14 Ноября, 2014 - 12:29:58
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июль 2014  


Помог: 0 раз(а)




ничего не произошло... все так и осталось.
 
 Top
LIME
Отправлено: 14 Ноября, 2014 - 20:13:07
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




я в шоке
этот код используется в бизнесе????
тут никто не разберется без литра самогона
по крайней мере желания без оного литра не появится
esterio пишет:
уберите все @ по коду и включите вивод ошибок
тут явно косяки по логике
и код такая каша что искать их не хочется
PHP:
скопировать код в буфер обмена
  1.  $r_opl_user = mysql_query("SELECT * FROM {$_SESSION["picked_legal"]}.`users` where id='".$RowOP['avtor_id']."'");
  2.                                                                                   if($RowOP['avtor_id']=="")  $r_opl_user = mysql_query("SELECT * FROM {$_SESSION["picked_legal"]}.`users` where id='".$USER_ID."'");
нормально
бррррр
а я еще думал что повидал говнокода
наивный
(Добавление)
LIME пишет:
и код такая каша что искать их не хочется
мимодумно всетки глянул))
тут нет причины ошибки
она гдето еще наверняка
но боже упаси тебя приводить бОльшие участки
тем более тут нет ни одного участка добавления
хотя косяк и в выборке может быть
в валуе инпутов
оооой....кошмар неподъемный
 
 Top
Viper
Отправлено: 14 Ноября, 2014 - 21:50:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




anton1488 пишет:
В чем прикол - не могу понять.
логирование запросов к базе + дебаг в php.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
LIME
Отправлено: 14 Ноября, 2014 - 21:52:49
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Viper Не понял
серьезно?
ты реально думаешь что это может исправить всю ситуацию?
вот только честно...думаешь?
 
 Top
Viper
Отправлено: 14 Ноября, 2014 - 21:57:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




LIME кому-то помогает Улыбка У меня просто от такого кода глаза поехали на второй строке... Не понял


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
LIME
Отправлено: 14 Ноября, 2014 - 22:00:55
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Viper я чуть было не ослеп
досихпор зайчики в глазах
реально первый раз такое вижу
anton1488 пишет:
Первая оплата добавляется абсолютно всегда!
мне страшно Не понял Не понял Не понял
вдруг я кому так заплачу!!!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB