Возможно в wordpress есть другой вариант запроса, кроме "get_results" для возврата единственного значения в запросе, но если делать через него, то можно:
Заменить SELECT SUM(meta_value) FROM ... на SELECT SUM(meta_value) as `sum_rating` FROM ...
А потом выводить через echo $sum_rating[0]['sum_rating'];
Если через Excel делать и нужны Опции в товарах (чекбоксы, выпадающие списки и т.п.), то они там очень неудобно для копирования реализованы (нужно копировать, а затем менять id товара у этих опций всех)
А если я всё таки не буду подключать питание, так как регистратор почти всегда включен, а USB GPS понадобится иногда. Если я подключу только землю и TX, то все нормально должно быть?
Если быть точным, то преобразователь думаю делать на PL2303HX или CP2102, посмотрим, вряд ли там 12В будет...
В моем случае у обоих 5В, да и питание вроде как "чистое", без помех... Питание то вряд ли подключать буду, только землю и TX, думаю все же ничего не случится, если я просто замкну два устройства землей и TX...
Это лишь немного усложняет код (отображение списка в зависимости от первого поля, тот же самый код, как и в скрипте ответа для JS).
А вот JS проверка полей, это как раз усложняет код, пользователю то конечно удобнее, когда сразу все ошибки подсвечиваются, но это двойная проверка, проверять на JS, а потом эти же поля проверять перед использованием в скрипте, так как они могут содержать что угодно.
Куки создаются и тут же после редиректа и вывода сообщения, удаляются, поэтому всё нормально. Может не очень красиво, зато быстро работает и url чистое.
Выпадающий список работает и без JS, допустим список, Страна и в зависимости от страны загружаются области, если пользователь без JS, выбирает страну, то во втором поле ничего не загружается, но он может нажать кнопку Submit и будет ошибка "Вы не выбрали область", и вместе с этой ошибкой загрузится список =)
Если делать следующим способом, то куки очень даже подойдут:
1) Форма без всяких случайных значений и т.п., обычная форма, пользователь заполняет и нажимает кнопку;
2) Всё проверяется, если ошибки, то выводятся и форма остается, если ошибок нет, запись добавляется в базу, ставится кука с сообщением, редирект на страницу со списком сообщений, exit;
3) Список сообщений, если есть переменная в куках с сообщением, то выводим и удаляем, если нет, то ничего не делаем.
Теперь если обновлять страницу то ничего еще раз не добавится, если вернуться назад и еще раз нажать кнопку, то конечно добавится, но от этого я и не хочу защититься.
Я считаю, что отправку формы всё-таки можно сделать и стандартным способом, а вот, например, подгружаемые выпадающие списки, можно и на JS, так как без него будет уж совсем "некрасиво". А если уж делать многое на JS, то делать всё, то есть без перезагрузки страницы и т.п. Хотя иногда раздражает на подобных сайтах, что скрипт какой-нибудь недогрузился и на странице ничего не работает, пока не обновишь страницу, чтобы скрипты все загрузились, а кто сильно не связан с компьютерами, будет думать, что случилось, хорошо если перезапустит браузер и всё заработает.
Хотя, если запускать сессию придется постоянно для проверки, есть сообщения или нет, то с базой предпочтительнее, так как только один раз будет задержка при редактировании поля, а при выводе уже не будет, а там постоянно, даже если никаких сообщений не добавлять, хотя можно конечно сделать при редиректе пометку в get параметре, что было добавлено сообщение и только в эти моменты делать старт сессии, но наверное с базой по-лучше будет.
А забыл после вывода сообщения очистить поле/параметр, тогда к сессиям еще +0,0002, а к БД +0,0004, тогда сессии лучше, только с параметром, чтобы не каждый раз проверять есть ли сообщения, а только когда только что добавили и кто-нибудь обновил страницу эту с параметром.
Тогда может вообще cookie использовать =) Добавлять после добавления сообщения, выводить и удалять после редиректа.
Сравнил сейчас скорости, применительно для своего скрипта, примерно среднее время за ~30 попыток:
Сессии: создание сессии и добавление сообщения 0,0002 + создание сессии и вывод сообщения 0,0002
MySQL: редактирование поля в сессии пользователя 0,0004 + вывод сообщения (строка из таблицы итак считывается и не учитывается) 0,000018
Сообщение в сессии будет храниться менее 1 секунды (время редиректа с одной страницы на другую), затем сразу вывод и удаление сообщения из сессии. В базу, я думаю, еще хуже, поэтому сессия оптимальный вариант.
Сессия для этого и сделана, чтобы хранить различные параметры, а не идентификаторы, имя сессии и есть идентификатор для складирования параметров, конечно лучше числовых и небольших, но зачем усложнять, делать коды сообщений, и по коду выводить соответствующее, если можно сразу 100 байт сообщения сохранить в сессию и тут же удалить.
А на счет дублирования, можно также использовать сессию, создать случайное значение, вывести его в скрытое поле формы, затем после отправки формы, если есть значение, то действие выполнить и значение удалить, если значения нет, то ничего не делать.
О, спасибо, не знал что в Zend Framework'е так сделано, получается, прямо как я описывал.
Да, может и не стоит беспокоиться, портить внешний вид url какими-то случайными данными, даже если кто-то одновременно нажмет в нескольких вкладках отправить, то с данными ничего страшного не случится, просто в одной или в обоих отобразится два сообщения. Ситуация почти невозможная, если делать вручную, это надо нажать в одной вкладке кнопку и сразу перейти на вторую и снова нажать, если только проблемы с интернетом у пользователя или бот какой-нибудь, то может случиться, но ничего критичного, я думаю.
Я тоже, но наверное надо заставлять себя в тех местах, где уж точно уверен, удалять проверки и т.п. Хотя сам бывает оставляю, на всякий случай, если думаю, что вдруг когда-нибудь будет редактироваться код и забуду, что там вот так вот сделано.
Заменить SELECT SUM(meta_value) FROM ... на SELECT SUM(meta_value) as `sum_rating` FROM ...
А потом выводить через echo $sum_rating[0]['sum_rating'];