Нужна помощь по синтаксису php - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1

Нужна помощь по синтаксису php

#1 Пользователь не на сайте   Cheshir ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 217
  • Регистрация: 02-Февраль 12
  • Репутация: 21
  • IPB version:3.2.x
 

Отправлено 26 Февраль 2013 - 19:30

Код
Spoiler


По задумке $topics_limit_mod_count_fix получает результат если отмечен чекбокс, и делает запись в 'mt_ppd_limit'.

Если приходит ответ без отмеченнго чекбокса, $topics_limit_mod_count_temp и $topics_limit_mod_days получают данные и делают записи в 'temp_mt_ppd_limit', 'limit_days'.

Праблема заключается в том, что если отмечен чекбокс, и производится запись полученного значения в 'mt_ppd_limit', то а ячейках 'temp_mt_ppd_limit' и 'limit_days' значения перезаписываются в 0, а если чекбокс не отмечен, то наоборот записываются данные в 'temp_mt_ppd_limit' и 'limit_days', но при этом ячейка 'mt_ppd_limit' перезаписывается в 0...

Как сделать чтобы при отмеченном чекбоксе изменялись данные только ячейки 'mt_ppd_limit' (не перезаписывая 'temp_mt_ppd_limit' и 'limit_days'), а без чекбокса только 'temp_mt_ppd_limit' и 'limit_days' (не перезаписывая 'mt_ppd_limit')??
0

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 246
  • Регистрация: 20-Март 09
  • Репутация: 2 062
  • IPB version:3.1.x
 

Отправлено 26 Февраль 2013 - 19:46

Ставьте else, работайте над логикой, в этом коде кроме вас никто не разберется.
0

#3 Пользователь не на сайте   Cheshir ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 217
  • Регистрация: 02-Февраль 12
  • Репутация: 21
  • IPB version:3.2.x
 

Отправлено 26 Февраль 2013 - 19:57

Условие else выполняется, но насколько понимаю дело в записи сохранения

 IPSMember::save( $this->warn_member['member_id'], array( 'core' => array(   'mt_ppd_limit' => $topics_limit_mod_count_fix,
                                                                                         'temp_mt_ppd_limit' => $topics_limit_mod_count_temp,
                                                                                         'limit_days'   => $topics_limit_mod_days
                                                                                                         ) ) );



т.е. запись происходит в любом случае, только если значение имеется, оно записывается, если нет - ставится 0
0

#4 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 246
  • Регистрация: 20-Март 09
  • Репутация: 2 062
  • IPB version:3.1.x
 

Отправлено 26 Февраль 2013 - 20:23

Правильно, а как иначе?
0

#5 Пользователь не на сайте   Cheshir ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 217
  • Регистрация: 02-Февраль 12
  • Репутация: 21
  • IPB version:3.2.x
 

Отправлено 26 Февраль 2013 - 20:25

По другому попробую объяснить...

Логика:

Получаем данные из присланной формы, в которой параметр отмечен чекбоксом (значение 1)

           if ( $this->request['topics_limit_mod_count_fix'] == [b]1[/b] ) // если параметр "1", то берем значение из параметра [b]topics_limit_mod_count_temp[/b]
		                	{
				$topics_limit_mod_count_fix = ( intval($this->request['[b]topics_limit_mod_count_temp[/b]'] ) ); // Получили значение


И кодом

 IPSMember::save( $this->warn_member['member_id'], array( 'core' => array(   'mt_ppd_limit' => $topics_limit_mod_count_fix
                                                                                                                      )));

Делаем запись в таблице 'members', столбец 'mt_ppd_limit'

Если форма пришла без отмеченного чекбокса, то все равно считывается информация с $topics_limit_mod_count_fix и делается и делается запись кодом
 IPSMember::save( $this->warn_member['member_id'], array( 'core' => array(   'mt_ppd_limit' => $topics_limit_mod_count_fix
                                                                                                                      )));

Но уже 0 значение... Как должен выглядить код, чтобы не производить запись в БД, если пришедшее значение не равно 1?

Более понятней объяснить не получается...
0

#6 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 246
  • Регистрация: 20-Март 09
  • Репутация: 2 062
  • IPB version:3.1.x
 

Отправлено 26 Февраль 2013 - 21:00

Цитата

Но уже 0 значение... Как должен выглядить код, чтобы не производить запись в БД, если пришедшее значение не равно 1?


$save = array();

if( $this->request['topics_limit_mod_count_fix'] == 1 )
{
    $save['mt_ppd_limit'] = $this->request['topics_limit_mod_count_temp'];
}


if( count($save) )
{
	IPSMember::save( $this->warn_member['member_id'], array( 'core' => $save ) );
}

1

#7 Пользователь не на сайте   Cheshir ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 217
  • Регистрация: 02-Февраль 12
  • Репутация: 21
  • IPB version:3.2.x
 

Отправлено 26 Февраль 2013 - 22:06

{
    IPSMember::save( $this->warn_member['member_id'], array( 'core' => $save ));
}


Одной скобки нехватает... но не в этом дело, такой запрос дает ошибку бд...
0

#8 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 246
  • Регистрация: 20-Март 09
  • Репутация: 2 062
  • IPB version:3.1.x
 

Отправлено 26 Февраль 2013 - 22:14

Просмотреть сообщениеCheshir сказал(а):

такой запрос дает ошибку бд...

Значит не правильно его составляете. Поднимите логи и смотрите запрос.
1

#9 Пользователь не на сайте   Cheshir ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 217
  • Регистрация: 02-Февраль 12
  • Репутация: 21
  • IPB version:3.2.x
 

Отправлено 26 Февраль 2013 - 23:16

Просмотреть сообщениеsiv1987 сказал(а):

Значит не правильно его составляете. Поднимите логи и смотрите запрос.


Верно, просто ключ $save не уникальный был.

Победил таки, опять же, благодаря вашей подсказке! Спасибо!
0

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна