 |
|

01.10.2019, 20:24
|
|
Флудер
Регистрация: 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?
|
|
|

01.10.2019, 20:28
|
|
Новичок
Регистрация: 09.03.2017
Сообщений: 0
С нами:
4831039
Репутация:
1976
|
|
@kick, красивее смотрится да и дергать одну и туже переменную для сравнения ее на разные значения ...
|
|
|

01.10.2019, 20:30
|
|
Постоянный
Регистрация: 09.08.2017
Сообщений: 754
С нами:
4610581
Репутация:
802
|
|
@obius, я думаю куска говна бантик не украсит. Я в дальнейшем переделал всю логику, пользуясь комментариями более опытных пользователей. Например использовал GET и передавал параметры через url. Правда всегда боялся использовать GET , но у меня и так дырявый сайт как сыр и от тех же xss не спасет наверное. Я правда до конца не понял, что такое xss ....
|
|
|

01.10.2019, 20:35
|
|
Постоянный
Регистрация: 09.08.2017
Сообщений: 754
С нами:
4610581
Репутация:
802
|
|
@AndragorAndragor верифицированный пользователь., понимаете ли. Мне это ничего не объяснило. Там даже примеры сложные. Мне нужно по проще объяснение...
|
|
|

01.10.2019, 20:38
|
|
Флудер
Регистрация: 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
)
{
|
|
|

01.10.2019, 20:40
|
|
Постоянный
Регистрация: 09.08.2017
Сообщений: 754
С нами:
4610581
Репутация:
802
|
|
@kick, я ничего не понял. Мне кажется вы забываете с кем общаетесь ...
|
|
|

01.10.2019, 21:11
|
|
Новичок
Регистрация: 09.03.2017
Сообщений: 0
С нами:
4831039
Репутация:
1976
|
|
Сообщение от Низ
@kick, я ничего не понял. Мне кажется вы забываете с кем общаетесь ...
это называется передача аргументов по ссылке.
вот что можно с этим сделать (на пример)
Код:
|
|
|

02.10.2019, 01:51
|
|
Познающий
Регистрация: 11.09.2009
Сообщений: 34
С нами:
8772079
Репутация:
8
|
|
Всё просто, чем проще язык, тем чаще такое встречается
|
|
|

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
;
}
Насколько понимаете, работает одинаково.
|
|
|

02.10.2019, 23:24
|
|
Познавший АНТИЧАТ
Регистрация: 07.05.2015
Сообщений: 1,791
С нами:
5799746
Репутация:
1388
|
|
@Низ, первый говнокод, но логика до и после разная...
Да и это тупой рефакторинг. Твой код выглядит красевее, но все так же можно использовать в это теме как пример как не надо.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|