 |
|

02.10.2019, 23:36
|
|
Новичок
Регистрация: 09.03.2017
Сообщений: 0
С нами:
4831039
Репутация:
1976
|
|
@Низ, только один вопрос. Зачем?
Объявлять переменную echo_result как массив
Код:
Код:
$echo_result=array();
а потом преобразовывать в строку
Код:
[CODE]
$echo_result = '
|
|
|

02.10.2019, 23:38
|
|
Постоянный
Регистрация: 09.08.2017
Сообщений: 754
С нами:
4610581
Репутация:
802
|
|
@obius, забыл убрать эту часть. До этого думал использовать
$echo_result вне цикла, однако этого не потребовалось. Мне правда все-равно кажется, что это все очень еще плохо и далеко от идеала. Однако все-равно спасибо вам за оценку.
|
|
|

02.10.2019, 23:40
|
|
Участник форума
Регистрация: 12.08.2015
Сообщений: 136
С нами:
5659120
Репутация:
16
|
|
Сообщение от òbi
@Низ, вот пример
Код:
Код:
switch ($_SESSION['Ul_params']) {
case 0: return '`id` ASC';
case 1: return '`name` ASC';
case 2: return '`name` DESC';
case 3: return '`priceflo` ASC';
case 4: return '`priceflo` DESC';
case 5: return '`id` DESC';
//default: unregistered param!
}
Как минимум, нужно еще добавить проверку if(isset($_SESSION[....]) { .... }
|
|
|

02.10.2019, 23:43
|
|
Новичок
Регистрация: 09.03.2017
Сообщений: 0
С нами:
4831039
Репутация:
1976
|
|
Сообщение от mr.s4z
Как минимум, нужно еще добавить проверку if(isset($_SESSION[....]) { .... }
согласен. поможет избежать ошибок типов нотис.
|
|
|

02.10.2019, 23:44
|
|
Участник форума
Регистрация: 12.08.2015
Сообщений: 136
С нами:
5659120
Репутация:
16
|
|
Сообщение от Низ
Итак, прошу оценить код До-После
ДО
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
;
}
Насколько понимаете, работает одинаково.
Совет.. откажитесь от внедрения HTML кода в PHP... это ужасно, как минимум - потом трудно будет вносить изменения.. Используйте готовые шаблонизатора, например twig, smarty.. (доки по приведенным шаблонизаторам в интернете - полно)
|
|
|

02.10.2019, 23:45
|
|
Постоянный
Регистрация: 09.08.2017
Сообщений: 754
С нами:
4610581
Репутация:
802
|
|
@I'm StreL, я посмотрю, что это такое. Впервые слышу про это если честно
|
|
|

02.10.2019, 23:49
|
|
Участник форума
Регистрация: 12.08.2015
Сообщений: 136
С нами:
5659120
Репутация:
16
|
|
Сообщение от Низ
@I'm StreL, я посмотрю, что это такое. Впервые слышу про это если честно
Если приходилось использовать CMS, например DLE, StressWeb - любой человек, который имеет минимальные знания по HTML, сможет без труда поменять шаблон.. Папка template, которая содержит в себе .tpl файлы. Тот же титул можно будет вывести не как:
Код:
а по человечески
Код:
|
|
|

03.10.2019, 16:45
|
|
Познающий
Регистрация: 11.09.2009
Сообщений: 34
С нами:
8772079
Репутация:
8
|
|
Сообщение от Низ
$echo_result = ''.$row['name'].' Цена: '.$price_rub.' руб. '.BUY ($row['id']).' ';
Мало кто знает, но в PHP есть разница между двойными и одинарными кавычками, и они предназначаются для разных целей применения.
Если ты проведешь тест, ты увидишь, что твой код где будет использоваться с одинарные кавычки (как в данном случае) будет медленнее (в некоторых случаях в СОТНЮ раз), чем если бы ты использовал двойные.
Дело в том, что одинарные кавычки используются чисто для строк, они первично не предназначены что там будет ожидаться переменная, парсер 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"; }
Зачем так много функций, если можно всё сделать в одной?
PHP:
Код:
function
ransmes
(
$rnd1
=
1
,
$rnd2
=
999
)
:
int
{
return
rand
(
$rnd1
,
$rnd2
)
;
}
|
|
|

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

04.10.2019, 08:08
|
|
Участник форума
Регистрация: 20.08.2019
Сообщений: 105
С нами:
3544090
Репутация:
147
|
|
Сообщение от Logan22
Мало кто знает, но в PHP есть разница между двойными и одинарными кавычками, и они предназначаются для разных целей применения.
Если ты проведешь тест, ты увидишь, что твой код где будет использоваться с одинарные кавычки (как в данном случае) будет медленнее (в некоторых случаях в СОТНЮ раз), чем если бы ты использовал двойные.
Дело в том, что одинарные кавычки используются чисто для строк, они первично не предназначены что там будет ожидаться переменная, парсер PHP не ищет там переменную изначально, а конкатенация строк требует дополнительного времени и ресурсов.
По этой причине, если в строке будет переменная, используй двойные кавычки.
Вообще это всё есть на официальном сайте и более развернуто, где-то в разделе о строках.
Зачем так много функций, если можно всё сделать в одной?
PHP:
Код:
function
ransmes
(
$rnd1
=
1
,
$rnd2
=
999
)
:
int
{
return
rand
(
$rnd1
,
$rnd2
)
;
}
Зачем вообще нужно объявлять функцию если можно просто rand() использовать сразу...
JavaScript :
Код:
{
name
:
'add'
,
path
:
'/addserver'
,
component
:
(
)
=>
import
(
'./components/Nahui.vue'
)
}
у себя нашёл
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|