PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (52): В начало « ... 6 7 8 9 [10] 11 12 13 14 ... » В конец
Найдено сообщений: 766
pantela
Отправлено: 25 Мая, 2016 - 07:36:40 • Тема: Простой арифметический запрос • Форум: Напишите за меня, пожалуйста
Ответов: 2 Просмотров: 41
Каждому объекту недвижимости по значению поля скидки, надо считать каждый тариф времени...
Наверное можно написать все через один запрос и сгруппировать в одну запись 3 тарифы, или может через метод и на стороне ПШП считать арифметику (думаю так правильнее)
спс.Ув.
pantela
Отправлено: 25 Мая, 2016 - 02:29:28 • Тема: Метод для подсчёта тарифа • Форум: Напишите за меня, пожалуйста
Ответов: 2 Просмотров: 55
Кое как сделал, может тупо, но работает...
Оба метода в одном классе, что бы тупо 2 метода не держать, как их объединить?
PHP:
скопировать код в буфер обмена
public function addDistrictCalcPricesByIDItem( $item )
{
$item [ 'district_calc_price' ] = $this -> addDistrictCalcPricesByIDItemCalc ( $item ) ;
return $item ;
}
public function addDistrictCalcPricesByIDItemCalc( $item )
{
$_model_map = new Model_Map( ) ;
$district_price = $_model_map -> getDistrictPricesByID ( $item [ 'district_key' ] ) ;
$price_discount = $item [ 'price_discount' ] ;
foreach ( $district_price as & $i )
{
if ( $price_discount ) {
$i = ceil ( $i - $i * $price_discount / 100
) ; }
}
return $district_price ;
}
pantela
Отправлено: 22 Мая, 2016 - 17:35:39 • Тема: Определить промежуток времени • Форум: Вопросы новичков
Ответов: 0 Просмотров: 98
Имею поле, где пользователь указывает время которое надо определять в какой промежуток времени попадает.
В БД имею таблицу виде
CODE (
SQL ):
скопировать код в буфер обмена
CREATE TABLE IF NOT EXISTS `booking_extra_times` (
`id` int( 11) NOT NULL AUTO_INCREMENT ,
`status` tinyint( 4) NOT NULL ,
`type` varchar( 25) COLLATE utf8_unicode_ci NOT NULL ,
`time_start` time NOT NULL ,
`time_end` time NOT NULL ,
`price` tinyint( 2) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE= InnoDB DEFAULT CHARSET= utf8 COLLATE= utf8_unicode_ci AUTO_INCREMENT = 7 ;
--
-- Dumping data for table `booking_extra_times`
--
INSERT INTO `booking_extra_times` ( `id` , `status` , `type` , `time_start` , `time_end` , `price` ) VALUES
( 1 , 1 , 'in' , '12:00:00' , '14:00:00' , 0 ) ,
( 2 , 1 , 'in' , '18:00:00' , '20:00:00' , 0 ) ,
( 3 , 1 , 'in' , '23:00:00' , '07:00:00' , 10) ;
Как определять в какой промежуток времени попадает пользователь. если напр. указал "01:00:00 ", значит попадает в (3, 1, 'in', '23:00:00', '07:00:00', 10)
т.к. 23:00:00 это пред. дата, а 07:00:00 след. дата...
Думаю 2 решения (если имеет большое различие какое использовать):
1. Определять всё при запросе
2. Вытащить все записи и определять на стороне PHP
спс.Ув.
pantela
Отправлено: 17 Мая, 2016 - 17:25:08 • Тема: Метод для подсчёта тарифа • Форум: Напишите за меня, пожалуйста
Ответов: 2 Просмотров: 55
Имею метод "get_all() " каторый выводит список объектов
CODE (
htmlphp ):
скопировать код в буфер обмена
public function get_all( )
{
$res = DB:: select ( 'id' , 'price_discount' , 'district_key' )
-> from ( 'object' )
-> order_by ( 'id' , 'DESC' )
-> where ( 'status' , '=' , 1)
-> as_array ( ) ;
$res = $this -> addDistrictPricesByIDItems ( $res ) ;
if ( ! empty ( $res ) ) return $res ; return null ;
}
Передаём ключь для вывода массива "district_price "
CODE (
htmlphp ):
скопировать код в буфер обмена
public function addDistrictPricesByIDItems($items)
{
foreach($items as &$i)
{
$i['district_price'] = $this->getDistrictPricesByID($i['district_key']);
}
return $items;
}
Выводим массив "district_price " через "$district_key "
CODE (
htmlphp ):
скопировать код в буфер обмена
public function getDistrictPricesByID( $district_key )
{
$res =
DB:: select ( 'price_full_day' , 'price_first_half' , 'price_second_half' )
-> from ( $this -> _table_district)
-> where ( 'id' , '=' , $district_key )
-> execute ( )
-> as_array ( ) ;
if ( ! empty ( $res ) ) return $res [ 0
] ; return null ;
}
Результат
CODE (
htmlphp ):
скопировать код в буфер обмена
(
(
[ id] => 30
[ price_discount] => 5
[ district_price
] => Array (
[ price_full_day] => 70
[ price_first_half] => 30
[ price_second_half] => 50
)
)
(
[ price_discount] => 3
[ district_price
] => Array (
[ price_full_day] => 70
[ price_first_half] => 30
[ price_second_half] => 50
)
)
(
[ price_discount] => 0
[ district_price
] => Array (
[ price_full_day] => 70
[ price_first_half] => 30
[ price_second_half] => 50
)
)
(
[ price_discount] => 10
[ district_price
] => Array (
[ price_full_day] => 70
[ price_first_half] => 30
[ price_second_half] => 50
)
)
)
Теперь мне надо создать метод "priceCalc() " и вызывать его в методе "get_all() " для того что-бы передавать каждой записи ['district_price'] и ['price_discount'] , а уже в методе "priceCalc() " считать значения по формуле:
['district_price'][price_full_day] * [price_discount] / 100
['district_price'][price_first_half] * [price_discount] / 100
['district_price'][price_second_half] * [price_discount] / 100
Витоге массив будет ~ виде:
CODE (
htmlphp ):
скопировать код в буфер обмена
(
(
[ id] => 30
[ price_discount] => 5
[ district_price
] => Array (
[ price_full_day] => 70
[ price_first_half] => 30
[ price_second_half] => 50
)
(
[ price_full_day] => 3. 5
[ price_first_half] => 1. 5
[ price_second_half] => 2. 5
)
)
(
[ price_discount] => 3
[ district_price
] => Array (
[ price_full_day] => 70
[ price_first_half] => 30
[ price_second_half] => 50
)
(
[ price_full_day] => 1. 4
[ price_first_half] => 0. 9
[ price_second_half] => 1. 5
)
)
(
[ price_discount] => 0
[ district_price
] => Array (
[ price_full_day] => 70
[ price_first_half] => 30
[ price_second_half] => 50
)
(
[ price_full_day] => 0
[ price_first_half] => 0
[ price_second_half] => 0
)
)
(
[ price_discount] => 10
[ district_price
] => Array (
[ price_full_day] => 70
[ price_first_half] => 30
[ price_second_half] => 50
)
(
[ price_full_day] => 7
[ price_first_half] => 3
[ price_second_half] => 5
)
)
)
спс.Ув.
pantela
Отправлено: 11 Мая, 2016 - 14:07:23 • Тема: Один роут для несколько методов • Форум: Вопросы новичков
Ответов: 0 Просмотров: 62
Делаю API который имеет 2 метода "reg" и "chekbooking"
Делаю роут виде:
CODE (
htmlphp ):
скопировать код в буфер обмена
Route::set('api/ipad','api/ipad/< act> (/< object_id> )(/< booking_id> )/< device_id> ', array(
'act' => '[a-z]*',
'object_id' => '[0-9]+',
'booking_id' => '[0-9]+',
'device_id' => '[^/]*'
))->defaults(array(
'directory' => 'api',
'controller' => 'ipad'
));
Пометил что параметры "object_id " и "booking_id " необязательный. А точнее когда:
act = reg , тогда нужен "object_id "
act = chekbooking , тогда нужен "booking_id "
Параметр "device_id " всегда обязательный, поэтому его в скобки не поместил.
Когда тестирую запрос результат такой:
/api/ipad/reg/30/this_is_device
/api/ipad/chekbooking/1547/this_is_device
При "chekbooking " значение "booking_id " переходит в "object_id " Я понимаю что у меня указанно "object_id " как второй параметр и поэтому, а т.к. параметр "device_id " у меня обязательный, его значение и подставляется из последнего параметра.
Вопрос : Как можно, как-нибудь отличить какой параметр я передаю в моём случае...
спс.Ув.
pantela
Отправлено: 03 Мая, 2016 - 14:51:52 • Тема: Как хранить 32 поля • Форум: Вопросы новичков
Ответов: 32 Просмотров: 1928
Может merge сделать массивам и через один foreach их выводить и внутри проверять вывод
pantela
Отправлено: 27 Апреля, 2016 - 09:27:25 • Тема: Как хранить 32 поля • Форум: Вопросы новичков
Ответов: 32 Просмотров: 1928
Да но когда будет 1000 записей, мне 1000 файлов ведь не держать... всё-же на файлах ничего особо не хотелось бы...
Кто что ещё помечил бы...
спс.Ув.
ок, спс, сейчас поковиряю...
pantela
Отправлено: 27 Апреля, 2016 - 02:33:47 • Тема: Как хранить 32 поля • Форум: Вопросы новичков
Ответов: 32 Просмотров: 1928
Ну если подвести итог сделал так... Имею 32 checkbox поля
В таблице в поле text сохраняюCODE (
SQL ):
скопировать код в буфер обмена
{
"comfort_1" :"1" ,
"comfort_2" :"1" ,
"comfort_3" :"0" ,
"comfort_4" :"1" ,
"comfort_5" :"0" ,
"comfort_6" :"0" ,
"comfort_7" :"1" ,
"comfort_8" :"1" ,
"comfort_9" :"0" ,
"comfort_10" :"1" ,
"comfort_11" :"0" ,
"comfort_12" :"0" ,
"comfort_13" :"1" ,
"comfort_14" :"1" ,
"comfort_15" :"0" ,
"comfort_16" :"1" ,
"comfort_17" :"0" ,
"comfort_18" :"0" ,
"comfort_19" :"1" ,
"comfort_20" :"1" ,
"comfort_21" :"0" ,
"comfort_22" :"1" ,
"comfort_23" :"0" ,
"comfort_24" :"0" ,
"comfort_25" :"1" ,
"comfort_26" :"1" ,
"comfort_27" :"0" ,
"comfort_28" :"1" ,
"comfort_29" :"0" ,
"comfort_30" :"0" ,
"comfort_31" :"1" ,
"comfort_32" :"0"
}
Вывожу такPHP:
скопировать код в буфер обмена
<?PHP
if ( $data [ 'comfort_data' ] ) {
$count_comfort_data = count ( $data [ 'comfort_data' ] ) ;
foreach ( $data [ 'comfort_data' ] as $key => $value ) {
$checked = ( $value == '1' ) ?' checked="checked"' : '' ;
echo '<div class="checkbox custom-checkbox"><label><input name="' . $key . '" type="checkbox" ' . $checked . '><span class="fa fa-check"></span> ' . $key . '</lable></div>' ;
}
}
?>
Теперь осталось на сохранение послать... Сейчас POST выводи так PHP:
скопировать код в буфер обмена
[ comfort_1] => on
[ comfort_2] => on
[ comfort_4] => on
[ comfort_7] => on
[ comfort_8] => on
[ comfort_10] => on
[ comfort_13] => on
[ comfort_14] => on
[ comfort_16] => on
[ comfort_19] => on
[ comfort_20] => on
[ comfort_22] => on
[ comfort_25] => on
[ comfort_26] => on
[ comfort_28] => on
[ comfort_31] => on
1. Думаю как теперь все поля в один массив собрать, чтобы сохранялся бы также т.к. сейчас они у меня виде одного поля - наверное, через forech надо все поля пропустить (количество знаю $count_comfort_data ) и так собрать...
2. Те поля которые не выделены вообще не попадают в POST... - наверное, (isset($data['pool']))?'1':'0' надо будет предварительно сделать
Очень прошу строго не судите, первый раз такое делаю, вот и опыта набираю... лучше подправьте если что не так ))
pantela
Отправлено: 26 Апреля, 2016 - 21:25:07 • Тема: Как хранить 32 поля • Форум: Вопросы новичков
Ответов: 32 Просмотров: 1928
caballero пишет: serialize()
не сталкивался... просто приведите пример как хранить в БД, как сохранять и выводить...
спс.Ув.
pantela
Отправлено: 26 Апреля, 2016 - 15:21:38 • Тема: Ввести логи изменения • Форум: Вопросы новичков
Ответов: 3 Просмотров: 192
Речь идёт о логирования данных которые сотрудник изменяеться через админ части. А данные хотел бы хранить в БД.
спс.ув.
Страниц (52): В начало « ... 6 7 8 9 [10] 11 12 13 14 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB