HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 01.10.2019, 20:24
kick
Флудер
Регистрация: 20.01.2015
Сообщений: 7,201
С нами: 5952720

Репутация: 6527


По умолчанию

Цитата:
Сообщение от Низ  

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

PHP:


Код:
function
Str_result
(
$POST
)
{
if
(
!
isset
(
$_SESSION
[
'Ul_params'
]
)
)
{
$_SESSION
[
'Ul_params'
]
=
0
;
}
else
{
if
(
$_POST
[
'NameUP'
]
)
$_SESSION
[
'Ul_params'
]
=
1
;
else
if
(
$_POST
[
'NameDown'
]
)
$_SESSION
[
'Ul_params'
]
=
2
;
else
if
(
$_POST
[
'PriceUP'
]
)
$_SESSION
[
'Ul_params'
]
=
3
;
else
if
(
$_POST
[
'PriceDown'
]
)
$_SESSION
[
'Ul_params'
]
=
4
;
else
if
(
$_POST
[
'idUP'
]
)
$_SESSION
[
'Ul_params'
]
=
0
;
else
if
(
$_POST
[
'idDown'
]
)
$_SESSION
[
'Ul_params'
]
=
5
;
}
if
(
$_SESSION
[
'Ul_params'
]
==
0
)
return
'`id` ASC'
;
else
if
(
$_SESSION
[
'Ul_params'
]
==
0
)
return
'`id` ASC'
;
else
if
(
$_SESSION
[
'Ul_params'
]
==
1
)
return
'`name` ASC'
;
else
if
(
$_SESSION
[
'Ul_params'
]
==
2
)
return
'`name` DESC'
;
else
if
(
$_SESSION
[
'Ul_params'
]
==
3
)
return
'`priceflo` ASC'
;
else
if
(
$_SESSION
[
'Ul_params'
]
==
4
)
return
'`priceflo` DESC'
;
else
if
(
$_SESSION
[
'Ul_params'
]
==
5
)
return
'`id` DESC'
;
}
Видали и похуже) В разы хуже

Цитата:
Сообщение от òbi  

Что-то пошло не так

Код:


Код:
if($_SESSION['Ul_params'] == 0) return '`id` ASC';
else if($_SESSION['Ul_params'] == 0) return '`id` ASC';
Много, оч. много if и else if. Пора научится пользоваться switch
В чём преймущество switch?
 
Ответить с цитированием

  #12  
Старый 01.10.2019, 20:28
òbiòbi верифицированный пользователь.
Новичок
Регистрация: 09.03.2017
Сообщений: 0
С нами: 4831039

Репутация: 1976
По умолчанию

@kick, красивее смотрится да и дергать одну и туже переменную для сравнения ее на разные значения ...
 
Ответить с цитированием

  #13  
Старый 01.10.2019, 20:30
Низ
Постоянный
Регистрация: 09.08.2017
Сообщений: 754
С нами: 4610581

Репутация: 802


По умолчанию

@obius, я думаю куска говна бантик не украсит. Я в дальнейшем переделал всю логику, пользуясь комментариями более опытных пользователей. Например использовал GET и передавал параметры через url. Правда всегда боялся использовать GET , но у меня и так дырявый сайт как сыр и от тех же xss не спасет наверное. Я правда до конца не понял, что такое xss ....
 
Ответить с цитированием

  #14  
Старый 01.10.2019, 20:35
Низ
Постоянный
Регистрация: 09.08.2017
Сообщений: 754
С нами: 4610581

Репутация: 802


По умолчанию

@AndragorAndragor верифицированный пользователь., понимаете ли. Мне это ничего не объяснило. Там даже примеры сложные. Мне нужно по проще объяснение...
 
Ответить с цитированием

  #15  
Старый 01.10.2019, 20:38
kick
Флудер
Регистрация: 20.01.2015
Сообщений: 7,201
С нами: 5952720

Репутация: 6527


По умолчанию

PHP:


Код:
function
PrepareGetList
(
&
$arIblockElementFields
,
&
$arJoinProps
,
&
$bOnlyCount
,
&
$bDistinct
,
&
$arSelectFields
,
&
$sSelect
,
&
$arAddSelectFields
,
&
$arFilter
,
&
$sWhere
,
&
$sSectionWhere
,
&
$arAddWhereFields
,
&
$arGroupBy
,
&
$sGroupBy
,
&
$arOrder
,
&
$arSqlOrder
,
&
$arAddOrderByFields
,
&
$arIBlockFilter
,
&
$arIBlockMultProps
,
&
$arIBlockConvProps
,
&
$arIBlockAllProps
,
&
$arIBlockNumProps
,
&
$arIBlockLongProps
)
{
 
Ответить с цитированием

  #16  
Старый 01.10.2019, 20:40
Низ
Постоянный
Регистрация: 09.08.2017
Сообщений: 754
С нами: 4610581

Репутация: 802


По умолчанию

@kick, я ничего не понял. Мне кажется вы забываете с кем общаетесь ...
 
Ответить с цитированием

  #17  
Старый 01.10.2019, 21:11
òbiòbi верифицированный пользователь.
Новичок
Регистрация: 09.03.2017
Сообщений: 0
С нами: 4831039

Репутация: 1976
По умолчанию

Цитата:
Сообщение от Низ  

@kick, я ничего не понял. Мне кажется вы забываете с кем общаетесь ...
это называется передача аргументов по ссылке.

вот что можно с этим сделать (на пример)

Код:


Код:

 
Ответить с цитированием

  #18  
Старый 02.10.2019, 01:51
Logan22
Познающий
Регистрация: 11.09.2009
Сообщений: 34
С нами: 8772079

Репутация: 8
По умолчанию

Всё просто, чем проще язык, тем чаще такое встречается
 
Ответить с цитированием

  #19  
Старый 02.10.2019, 23:05
Низ
Постоянный
Регистрация: 09.08.2017
Сообщений: 754
С нами: 4610581

Репутация: 802


По умолчанию

Итак, прошу оценить код До-После

ДО

PHP:


Код:
function
ransmes
(
)
{
$r1
=
rand
(
742
,
872
)
;
return
"$r1"
;
}
function
ranacces
(
)
{
$r1
=
rand
(
1
,
230
)
;
return
"$r1"
;
}
function
ranpencil
(
)
{
$r1
=
rand
(
426
,
644
)
;
return
"$r1"
;
}
function
ranwash
(
)
{
$r1
=
rand
(
657
,
715
)
;
return
"$r1"
;
}
$Query3
=
mysqli_query
(
$CONNECT
,
'SELECT `id`, `name`, `namecate`, `priceflo`, `namephoto` FROM `products` WHERE `id` = '
.
$ransmes1
.
' AND `namecate` = "smes" ORDER BY `id` DESC LIMIT 1'
)
;
while
(
$Row
=
mysqli_fetch_assoc
(
$Query3
)
)
$Hit1
.
=
''
.
$Row
[
'name'
]
.
'

Цена: '
.
ceil
(
KursRub
(
$Row
[
'priceflo'
]
)
)
.
' руб.
'
.
BUY
(
$Row
[
'id'
]
)
.
'
'
;
$ranacces1
=
ranacces
(
)
;
$Query4
=
mysqli_query
(
$CONNECT
,
'SELECT `id`, `name`, `namecate`, `priceflo` FROM `products` WHERE `id` = '
.
$ranacces1
.
' AND `namecate` = "accessories" ORDER BY `id` DESC LIMIT 1'
)
;
while
(
$Row
=
mysqli_fetch_assoc
(
$Query4
)
)
$Hit1
.
=
''
.
$Row
[
'name'
]
.
'

Цена: '
.
ceil
(
KursRub
(
$Row
[
'priceflo'
]
)
)
.
' руб.
'
.
BUY
(
$Row
[
'id'
]
)
.
'
'
;
$ranpencil1
=
ranpencil
(
)
;
$Query5
=
mysqli_query
(
$CONNECT
,
'SELECT `id`, `name`, `namecate`, `price`, `namephoto` FROM `products` WHERE `id` = '
.
$ranpencil1
.
' AND `namecate` = "pencilcase" ORDER BY `id` DESC LIMIT 1'
)
;
while
(
$Row
=
mysqli_fetch_assoc
(
$Query5
)
)
$Hit1
.
=
''
.
$Row
[
'name'
]
.
'

Цена: '
.
$Row
[
'price'
]
.
' руб.
'
.
BUY
(
$Row
[
'id'
]
)
.
'
'
;
$ranwash1
=
ranwash
(
)
;
$Query6
=
mysqli_query
(
$CONNECT
,
'SELECT `id`, `name`, `namecate`, `priceflo`, `namephoto` FROM `products` WHERE `id` = '
.
$ranwash1
.
' AND `namecate` = "shower" ORDER BY `id` DESC LIMIT 1'
)
;
while
(
$Row
=
mysqli_fetch_assoc
(
$Query6
)
)
$Hit1
.
=
''
.
$Row
[
'name'
]
.
'

Цена: '
.
ceil
(
KursRub
(
$Row
[
'priceflo'
]
)
)
.
' руб.
'
.
BUY
(
$Row
[
'id'
]
)
.
'
'
;
После

PHP:


Код:
$db
=
getPDOconnect
(
)
;
// Подключение к БД
$id
=
array
(
(
rand
(
1
,
230
)
)
,
(
rand
(
426
,
644
)
)
,
(
rand
(
657
,
715
)
)
,
(
rand
(
742
,
872
)
)
)
;
$in
=
str_repeat
(
'?,'
,
count
(
$id
)
-
1
)
.
'?'
;
$query
=
"SELECT * FROM products WHERE `id` IN ($in)"
;
$stm
=
$db
-
>
prepare
(
$query
)
;
$stm
-
>
execute
(
$id
)
;
$echo_result
=
array
(
)
;
foreach
(
$stm
as
$row
)
{
$price_rub
=
$row
[
'price'
]
+
ceil
(
KursRub
(
$row
[
'priceflo'
]
)
)
;
$echo_result
=
''
.
$row
[
'name'
]
.
'
        
         
         Цена: '
.
$price_rub
.
'  руб.
         '
.
BUY
(
$row
[
'id'
]
)
.
'
         '
;
echo
$echo_result
;
}
Насколько понимаете, работает одинаково.
 
Ответить с цитированием

  #20  
Старый 02.10.2019, 23:24
Desquire
Познавший АНТИЧАТ
Регистрация: 07.05.2015
Сообщений: 1,791
С нами: 5799746

Репутация: 1388


По умолчанию

@Низ, первый говнокод, но логика до и после разная...

Да и это тупой рефакторинг. Твой код выглядит красевее, но все так же можно использовать в это теме как пример как не надо.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...
×

ESCROW ADMIN PANEL

Загрузка...
Загрузка...