PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (3): [1] 2 3 »

> Найдено сообщений: 41
scarzie Отправлено: 06 Июля, 2015 - 06:27:57 • Тема: Какой из двух запросов ODER BY более производительной? • Форум: SQL и Архитектура БД

Ответов: 1
Просмотров: 28
Здравствуйте. Надо сделать сортировку выдачи по сумме сложения двух колонок. Скажите пожалуйста, какой из следующих двух запросов будет более производительный:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT
  2.     `id`,
  3.     SUM(`field_1`)+SUM(`field_2`) AS `sum`
  4. FROM `table`
  5. WHERE 1
  6. ORDER BY `sum` DESC

или
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT
  2.     `id`
  3. FROM `table`
  4. WHERE 1
  5. ORDER BY SUM(`field_1`)+SUM(`field_2`) DESC

?
Спасибо!
scarzie Отправлено: 02 Октября, 2013 - 19:44:43 • Тема: Объясните пожалуйста понятие объединенных индексов MySQL • Форум: Работа с СУБД

Ответов: 1
Просмотров: 787
Здравствуйте. В MySQL есть такое понятие как индексы.
Если я правильно понимаю (где неправ - немедленно поправьте пожалуйста)) ), то если по полю идет поиск, или поле присутствует в условии WHERE - то в обязательном порядке на него надо поставить индекс - это сильно помогает в производительности. Допустим поставили индекс на несколько полей, и потом по ним без проблем можно искать с помощью LIKE, ставить в WHERE, WHERE IN и т.д.
А вот что такое объединенные индексы? Чем они помогают?
(В phpmyadmin - при создании индекса для какого-нибудь поля можно добавить еще несколько полей к этому индексу...)
scarzie Отправлено: 02 Октября, 2013 - 14:42:31 • Тема: Запрос на получение всех товаров с указанными параметрами • Форум: Работа с СУБД

Ответов: 3
Просмотров: 1004
Мелкий, спасибо, в жизни бы к такому запросу не пришел. Да, item_id и param_name уникальны. Но насколько я знаю IN использовать не рационально (по быстродействию), как можно изменить структуру, чтобы можно было подобные запросы легко делать?
scarzie Отправлено: 02 Октября, 2013 - 07:05:49 • Тема: Запрос на получение всех товаров с указанными параметрами • Форум: Работа с СУБД

Ответов: 3
Просмотров: 1004
Здравствуйте. Допустим есть две таблицы, одна с товарами, другая с параметрами к этим товарам:
1) Items : item_id | item_name | item_price | ...
2) Params : item_id | param_name
Как выбрать товары с указанным параметром - понятно:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `items`
  2. INNER JOIN `params`
  3.     ON `items`.`item_id`=`params`.`item_id`
  4.         AND `params`.`param_name`='белый'
  5.  

Как выбрать товары с параметром 'белый' или 'красный' тоже понятно:
CODE (SQL):
скопировать код в буфер обмена
  1.  AND (`params`.`param_name`='белый' OR `params`.`param_name`='красный')

А как можно выбрать товары которые имеют и 'белый' и 'красный'?
Следующее условие
CODE (SQL):
скопировать код в буфер обмена
  1.  AND (`params`.`param_name`='белый' AND `params`.`param_name`='красный')

не сработает, так как оно подразумевает что и 'белый' и 'красный' должны быть в одной строке а не в разных.
В общем подскажите пожалуйста запрос с помощью которого можно выбрать все товары с несколькими указанными параметрами.
Большое спасибо.
scarzie Отправлено: 30 Августа, 2013 - 09:59:02 • Тема: Прикрепления домена к поддомену или замена адреса • Форум: Вопросы новичков

Ответов: 6
Просмотров: 212
tempo, попробуйте CNAME запись для поддомена.
scarzie Отправлено: 27 Августа, 2013 - 20:39:06 • Тема: Не вижу ошибки • Форум: Вопросы новичков

Ответов: 5
Просмотров: 222
HotDogich, перед 5-ой строкой напишите

и посмотрите что из себя на данный момент представляет переменная $code.
scarzie Отправлено: 27 Августа, 2013 - 19:17:14 • Тема: Цикл • Форум: Вопросы новичков

Ответов: 5
Просмотров: 252
CODE (htmlphp):
скопировать код в буфер обмена
  1. $alphabet = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
  2. preg_match_all('/.{1}/uis', $alphabet, $arr);
  3. $arr = $arr[0];
  4. $count_letters = count($arr);
  5. $z = 0;
  6. for($i=1;$i<=100;$i++){
  7.    echo "{$arr[$z]}{$i}<br>\n";
  8.     $z++;
  9.     if($z==$count_letters){
  10.         $z = 0;
  11.     }
  12. }
scarzie Отправлено: 27 Августа, 2013 - 14:52:11 • Тема: Регистрация через Вконтакте • Форум: Вопросы новичков

Ответов: 1
Просмотров: 135
Alexandr_Voronin, нет, сам сталкивался с этим. Vkontakte не отдает email пользователя.
scarzie Отправлено: 27 Августа, 2013 - 01:34:50 • Тема: Как защититься от подобного рода атак. • Форум: Вопросы новичков

Ответов: 47
Просмотров: 1725
DeepVarvar, жалко у вас тут нет смайла который бьется головой об стену...
(Добавление)
))
(Добавление)
А идеальное решение существует, так сказать, чтобы без недостатков? Даже если придется попариться...
scarzie Отправлено: 26 Августа, 2013 - 22:55:48 • Тема: Как защититься от подобного рода атак. • Форум: Вопросы новичков

Ответов: 47
Просмотров: 1725
Блин, я вас не понимаю. Есть открытая сессия. Пользователь запрашивает страницу с формой. Я ему генерирую ключ, и записываю этот ключ в сессию под ключем "form_key". Каждый раз при новом запросе я его заменяю на новый, верно?
Если да, то:
Есть пользователь. Он открывает три страницы форума в разных вкладках (я к примеру почти всегда так делаю). Получается что ключ для отправки сообщения будет валидный только для последней открытой вкладки, т.е. пользователь НЕ сможет ответить в двух предыдущих вкладках, так как ключ в этих формах уже НЕ действителен (он перезаписан последним ключем, т.е. тем, который находится в последней вкладке браузера).
Я правильно понимаю??
scarzie Отправлено: 26 Августа, 2013 - 21:39:13 • Тема: Вывод даты 1 раз • Форум: Вопросы новичков

Ответов: 9
Просмотров: 295
sprinter пишет:
Может я че то криво прописал.
- да, 100%.
Полный код в студию (в смысле не полный-полный, а именно этот кусок).
scarzie Отправлено: 26 Августа, 2013 - 21:35:43 • Тема: Как защититься от подобного рода атак. • Форум: Вопросы новичков

Ответов: 47
Просмотров: 1725
armancho7777777 пишет:
Токен для каждого раза, каждого пользователя должен быть уникальным.

Ch_chov пишет:
У вас уже есть один ключ - ИД сессии. На его основе делаете уникальный токен для всех одинаковых форм.

так это все же должен быть один ключ, для всей сессии, или для каждой формы свой ключ?
scarzie Отправлено: 26 Августа, 2013 - 16:39:08 • Тема: foreach • Форум: Вопросы новичков

Ответов: 3
Просмотров: 165
imediasun, во первых не , а
Во вторых, во втором цикле ($arr[]['price&item']=) скобками [] - вы создаете новый элемент в массиве arr, а вам этого не надо делать.
Попробуйте так
PHP:
скопировать код в буфер обмена
  1. $arr[$key2]['price&item'] =  $value3[1].'_'.$value3[0];

Помог бы больше, просто до конца не могу задачу врулить.
scarzie Отправлено: 26 Августа, 2013 - 14:58:03 • Тема: Как защититься от подобного рода атак. • Форум: Вопросы новичков

Ответов: 47
Просмотров: 1725
DeepVarvar пишет:
Чисто случайно я угоняю этот статический ключ и CSRF'лю пользака как хочу.

Ну "чисто случайно" угнать этот ключ - равносильно полному взлому компьютера, тут уже мало что поможет.
armancho7777777, DeepVarvar, спасибо.
Всем спасибо.
Последний вопрос, допустим таки я буду генерировать токены.
В кукисах хранить - не хочу (потому что там можно хранить только одно значение, точнее можно много, но так делать не стоит).
В бд - не стоит, как уже выяснили.
Остаются сессии. Собственно вопрос:
Допустим на каждой странице (а-ля форум) будет присутствовать форма. Для каждой формы генерируется ключ который сохраняется в сессии. И что, в сессии необходимо хранить столько ключей, сколько было открыто раз форм? Т.е. если пользователь обошел 100 страниц (на которых присутствовала форма), то мне хранить 100 ключей, и потом среди них искать?
scarzie Отправлено: 26 Августа, 2013 - 14:44:26 • Тема: foreach • Форум: Вопросы новичков

Ответов: 3
Просмотров: 165
imediasun, если я правильно понял, то вы все сделали правильно, только ???? надо заменить на $value2[0] и $value2[1] соответственно.
Т.е. должно выйти так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $value_explode = explode("_", $value);
  3. foreach($rows_description as $key2=>$value2){
  4.     if(($value2[1]==$value_explode[1]) and ($value2[0]==$value_explode[0])){
  5.         echo "progress!!!";
  6.     }
  7. }

Страниц (3): [1] 2 3 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB