здравствуйте, есть несколько вопросов:
в проекте основная рабочая таблица - порядка 40 столбцов, при работе с проектом выборка обновление добавление происходит в основном в ней. смысл такой: табл. юзер, регион, город и основная - товар. ожидается большое количество записей в т.товар
юзер добавляет товар с описаниями в таблицу, обновляем-добавляем сумму товаров у юзера , в городе и регионе. при удалении - уменьшаем.
сейчас настроено так:
добавляем товар - в таблице висит триггер который апдейтит нужные таблицы (увеличивает счетчик товаров на 1)
считаю что это уменьшает колво запросов к бд, увеличивает скорость + имею сразу готовое количество товаров по городам и регионам при серфинге гостей по сайту те не придется каждый раз подсчитывать записи для формирования меню страниц
1 ВОПРОС: правильно ли я мыслю, те имеет ли место быть этот вариант? КАК сделать правильно/лучше и быстрее?
при перемещению по сайту дергаем т. товары, при выборке она джойнится с некоторыми другими в зависимости от посещаемых страниц. из т. товары выбирается каждый раз 15-35 столбцов, те не все.
2 ВОПРОС: для повышения быстродействия, скорости имеет ли смысл выбирать только те столбцы, прописывать их в запросе которые нужны (увеличивает код, слоужно ориентироваться) ? или при более полной выборке стоит использовать (*) ? как правильнее поступить?
пользователи рекламируют свои товары внутри сайта - в таблице для таких товаров поле- счетчик количества просмотров. таким образом каждый раз при просмотре страницы с товарами показывается несколько (4-12шт) рекламных (отбираем по критериям основной страницы), соответственно после выборки основных + выборки рекламных - опять дергаем-апдейтим таблицу, чтобы обновить количество просмотров (использую апдейт IN (тут ид тех которым изменить просмотры)).
3 ВОПРОС: как тут организовать правильно? какие можете дать рекомендации по по оптимизации и повышению быстродействия?
у юзеров есть тип аккаунта, для разных типов ак-в установливается разное количество показов их рекламы и самих объявлений (напр.: простому - 5объявок по 1000показов для вип -20об/10 000показов). реклама отображается по принципу - сначала тех у кого осталось показов больше. тут на лицо неравномерность показа, те простые ак-ты устанут стоять в очереди пока их реклама начнет отображаться.
заказчику предлагаю решение - уравнять количество показов для всех, скорректировав кол-во объявок.
4 ВОПРОС: может предложите какое то альтернативное решение?
код в проекте - SQL. читал разные форумы и тд, что SQL и SQLli смысл, скорость и суть - та же, те нет принципиальной разницы
5 ВОПРОС: стоит ли переходить на li ? чем чревато оставить простой SQL ? какую выгоду получу перейдя на li ?
с нетерпением жду ваших ответов и комментариев по каждому вопросу.
спасибо
попробуйте так как вариант:
добавляйте сразу, не надо 2 запроса. в таблице повесьте уникальный индекс на поле, при его повторении вставки не произойдет и выводите ответ пользователю
для добавления непонятно:
- если вывести данные пользователю - выж их добавляете, можете и в ответе вывести
- если с ними манипуляции какие то, например в другую таблицу - так сделайте триггер в таблице с нужным действием, тем самым перенесете(доверите) всю работу непосредственно самой базе.
здравствуйте
появилась следующая проблема, 2й день бьюсь:
на локальной машине стоит openserver.
1
есть простая авторизация.
форма отправляется постом через квери на обработчик, если все верно результат сохраняется в сессию и вписывается в поле на страницу вместо формы, эти данные беру из созданной сессии.
в обработчике и на странице - session_start();
так вот: он переменную в сессии видит, но все равно выдает классическуб ошибку
обновляю страницу и вижу значение переменной на станице вместе с ошибкой, взятое из сессии, следовательно сесия работает.
если в настройках прописать автоматический старт сессии, то ошибка пропадает,
а оно считает этот ответ положительным и выполняет последнюю строку вместо того чтобы вывести ошибку, хотя на другом работающем сайте на хостинге такой обработчик срабатывает...
в чем ошибка может быть?
есть таблица (50к записей):
ид(автоинкремент), автор(интегер)
в таблице есть удаленные записи, те ид не по порядку
на странице передан ид записи
подскажите: нужно выбрать следующие 5 записей после текущего ид у определенного автора
(напр. передан ид=40 - нужно выбрать следующие 5 записей у автора 40й записи)
как это реализовать покороче
просто проект делаю один, немного "сдираю" как обычно и там везде и повсеместно это есть, дык и не пойму что они там отлавливают...
как бы внешняя интерактивность: все изначально грузят в страницу, а для выбора отлавливают клик и отображаю блоки. как по мне так я бы не загружал сразу, а через квери подгружал в дом.
вобщем буду пробывать пользовать data-
напр data-id="header_region", отлавливаем клик и передаем в функцию значение, а на сервере проверяем что пришло и выдаем нужный результат. Если передали header_region, то выдаем список возможных вариантов регионов...
так понял, что это более лучше чем id юзать - можно меньше яваскрипта писать, не к каждому id, а одна функция передает, а все на сервере обрабатывается, в этом вся прелесть?
напр. куча кнопок для фильтра параметров, при клике один и тот же код(одна функция) передаст параметры взятые из data-id на сервер, а там вернется список возможных вариантов в зависимости по чем кликнули.
и последнее
не очень понял: юзать лучше именно "data-id" или возможно "data-любоеназвание"
и если много разных условий отбора то лучше ли подгружать условия или сразу загружать в страницу, а по клику только отображать?
обязательно к ссылке привязывать или можно к любому элементу?
не понял этого: "Ну HTML5 позволяет почти все символы"
что вы имели ввиду?
есть ли описание такого класса: весь код цсс в одну строку = 50 вордовских страниц, но я поиском не нашел в нем класса "clicker"
к документу подключена только одна эта таблица
что можете подсказать, а тоя не знаю...
вы написали:
== - это вместо {} в HTML5
пожалуйста объясните что может означать и для чего пользоваться
clickerID:'header_region'
я полагаю, что это передается в класс и при нажатии поссылке выполняется скрипт, привязанный на ид эл-та, который по clickerID в зависимости от переменной(тут header_region) передает параметры в него...
если вы используете это как превью картинок с float:left расположенных в диве, то возможно, чтоб не применять n-е количество блоков с css вам подойдет такой принцип реализации:
если шаблон у вас готов и картинки вы генерите при загрузке, то задайте размер картинки напр. 150*150 с требуемым фоном, а само превью скриптом рисуйте с нужной позицией, тогда вы получите: 1 видимость картинки по центру(фон сольется с шаблоном), 2 уменьшение/экономию кода, 3 возможность располагать как угодно, с минимальными затратами кода. и уровнем вложенности div-ов
п.с. конечно, если общая идея такова, а не ,буквально требуется vertical-align: middle;
насколько я понимаю - общий смысл тот же, только не через класс, а style меняет. попробовал, применил.
=результат тот же...блин.
смотрю код - и хром и опера меняет свойства, но в экране
хром корректно показывает только при выборе 1го пункта в списке категорий, для остальных - так же -высота во 2раск.списке в 1оптион.
опера ж в экране ничего не меняет, только в коде.
по идее браузер чтоли рассчитать новые свойства не может.
работалож..подправил чтото на ночь вчера(и забыл как было)
вопрос актуален
чего хром схлопывает элементы, а опера не отображает сменившиеся свойства элементов?
еще какие идеи есть?
спасибо
пока сделал доп аякс запрос и вывод после обновления.
подгружаем в страницу форму с 2мя селектами категории и подкатегории
изначально задаем класс dispno для элементов селекта подкатегорий
в котором display: none;
при выборе в первом селекте присваиваем клас dispno для всех эл-в с .scat (чтоб убрать если уже чтото было выбрано) и удаляем его у элементов с нужным классом cat+значение-из-первого
короче в хроме после обновления оно скрывает и отображает то что нужно, но:
отображает в раскрыв. списке только 1строку при нажатии, но внутри элементы все нужные
в опере вообще не работает, сразу все подкатегории отображаются, и при смене категории в селекте подкат. ничего не происходит
подскажите в чем может быть?
или какие другие решения для данной задачи
спасибо
JS+ квери
только зачем имя, реально практически нигде уже не используется быть может ид получить того элемента на котором был клик, перед тем как у вас ф поле формы добавляется