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

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

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

@Низ, только один вопрос. Зачем?

Объявлять переменную echo_result как массив

Код:


Код:
$echo_result=array();
а потом преобразовывать в строку

Код:


[CODE]
$echo_result = '
 
Ответить с цитированием

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

Репутация: 802


По умолчанию

@obius, забыл убрать эту часть. До этого думал использовать

$echo_result вне цикла, однако этого не потребовалось. Мне правда все-равно кажется, что это все очень еще плохо и далеко от идеала. Однако все-равно спасибо вам за оценку.
 
Ответить с цитированием

  #23  
Старый 02.10.2019, 23:40
mr.s4z
Участник форума
Регистрация: 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[....]) { .... }
 
Ответить с цитированием

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

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

Цитата:
Сообщение от mr.s4z  

Как минимум, нужно еще добавить проверку if(isset($_SESSION[....]) { .... }
согласен. поможет избежать ошибок типов нотис.
 
Ответить с цитированием

  #25  
Старый 02.10.2019, 23:44
mr.s4z
Участник форума
Регистрация: 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.. (доки по приведенным шаблонизаторам в интернете - полно)
 
Ответить с цитированием

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

Репутация: 802


По умолчанию

@I'm StreL, я посмотрю, что это такое. Впервые слышу про это если честно
 
Ответить с цитированием

  #27  
Старый 02.10.2019, 23:49
mr.s4z
Участник форума
Регистрация: 12.08.2015
Сообщений: 136
С нами: 5659120

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

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

@I'm StreL, я посмотрю, что это такое. Впервые слышу про это если честно
Если приходилось использовать CMS, например DLE, StressWeb - любой человек, который имеет минимальные знания по HTML, сможет без труда поменять шаблон.. Папка template, которая содержит в себе .tpl файлы. Тот же титул можно будет вывести не как:

Код:


Код:
echo " $title "
а по человечески

Код:


Код:
 {{ title }}
 
Ответить с цитированием

  #28  
Старый 03.10.2019, 16:45
Logan22
Познающий
Регистрация: 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
)
;
}
 
Ответить с цитированием

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

Репутация: 802


По умолчанию

@Logan22, крутые комменты. Про ковычки не знал. Спасибо
 
Ответить с цитированием

  #30  
Старый 04.10.2019, 08:08
Nolanson
Участник форума
Регистрация: 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)
 


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




ANTICHAT ™ © 2001- Antichat Kft.