Jump to content

bgraf

User
  • Posts

    358
  • Joined

  • Last visited

Posts posted by bgraf

  1. Здравствуйте.

    у меня есть два класса

    .text_color_blue{
    color: #37c1d0;
    }
    
    .text_color_white{
    color: #FFFFFF;
    }

    и есть такая структура

    <ul>
      <li><a>1</a></li>
      <li><a>2</a></li>
    </ul>

    как сделать так чтобы сначала <a> принимал класс text_color_blue а при наведении на него менялся на text_color_white

    знаю что по средством js я просто меняю у объекта класс но как можно обойтись css и присвоить <a> сначало один уже существующий класс а при hover заменить его

     

    спасибо всем

  2. Я изменил описание вопроса

    Добрый день!
    Есть две таблицы, одна с данными компании где id номер компании, а вторая это картинки этой компании где для одной компании (id) может быть несколько записей.
    Мне надо получить из первой компании все данные, а из второй мне надо на каждую компанию получить три ее картинки (желательно случайные в пределе количества картинок этой компании).

    Подскажите как правильно решать данную задачу, не перегружая сервер.

    Спасибо Вам всем!


    ок. покажите пример кода, который у вас есть. я вас отлично понял)

    нет примера, забудьте про то что я писал про два селекта и так далее.

    две таблицы, одна назание компании вторая картинки, у одной компании много картинок, нужно вытащить компанию и три случайные картинки у этой компании ну или на крайней случай просто три картинки


    ок. покажите пример кода, который у вас есть. я вас отлично понял)
    может быть и возможно сделать то что вы хотите. преобразование из строк в поля. но я за всю практику такого невстречал)))  в два запроса сделайте

    Т.е. делаю селект по компаниям и селект по картинкам.

    картинки засовываю в массив, выбераю в нем три случайные картинки для всех компаний.

    Потом бегу по первой таблице и проверяя id компании вытаскиваю картинки из массива

    так???

  3. У вас насколько большие таблицы? если мелкие, то смысла нет заморачиваться этим.  в мелких таблицах скорость высокая. можете даже проверить с помощью microtime

    Но, если все же хотите ускорить, в mysql специально для этого придумали индексирование данных 

    http://ruhighload.com/post/%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0+%D1%81+%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%B0%D0%BC%D0%B8+%D0%B2+MySQL

    пока не большие но потом будут шие и посещаемость надеюсь несколько тысяч в день.

    Вы скажите как правильно делать если у одного id одной таблицы есть множество записей в другой.

    Скорее всего Вы с талкивались с такими задачами

     

    Николя223

    может мы друг друга не поняли.

    я не знаю как сделать , мне бы пример или объяснения как решить задачу

  4. Добрый день!
    Есть две таблицы, одна с данными компании где id номер компании, а вторая это картинки этой компании где для одной компании (id) может быть несколько записей.
    Мне надо получить из первой компании все данные, а из второй мне надо на каждую компанию получить три ее картинки (желательно случайные в пределе количества картинок этой компании).

    Подскажите как правильно решать данную задачу, не перегружая сервер.

    Спасибо Вам всем!

  5. спасибо за ссылку

    SELECT *
    FROM tbl_company as names
    INNER JOIN tbl_products as products on products.uniq_id = names.uniq_id
    получаю количество строк равное количеству товаров
    не очень то что я хочу
    мне надо все компании и для каждой из них по ТРИ товара
  6. и что не так? мы меняем селект, идем к контроллеру, в нем забираем выбранынй селект идем в модель в ней создаем запрос на получении инфы о компании и запрос на продукты компании, профит. или 2 запроса это слишком много? Не переживайте бетрегзз не сделаете

    Простите, я ничего не понял.
  7. Здравствуйте!

    Помогите создать правильно SELECT.

    Есть две таблицы:

    tbl_company

    id_company int

    name_company varchar

    title_company varchar

    about_company text

     

    tbl_products

    id_company int

    id_product int

    name_product varchar

    url_product varchar

     

    Задача сделать запрос, который принесет все данные о компании и три товара этой компании. Не хочется делать запрос по компании, а потом бежать и делать компания х 3 селекта, слишком много запросов.

     

    Спасибо!

  8. У ТС думаю вообще задача не правильно поставлена.

    Может я прав, но задача именно в том чтобы выдать количество товаров подходящих под поиск посетителя.

    В этом случае сработает один или два и три условия а мне надо чтобы сработали только три условия показать товары которые отвечают всем трём или не показывать этот товар

    Как то вы заморочились ...

     

    SELECT DISTINCT *FROM table t1LEFT JOIN table t2  ON (t2.product_id = t1.product_id)LEFT JOIN table t3  ON (t3.product_id = t1.product_id)WHERE t1.id_propertie = 100 AND t1.select_value = 2 AND t2.id_propertie = 200 AND t2.select_value = 1 AND  t3.id_propertie = 300 AND t3.select_value = 8 
     

    ​Если таблица товаров большая, то по идее может быть имеет смысл использовать EXISTS, например

    SELECT * FROM table t

    WHERE

    EXISTS (SELECT 1 FROM table t1 WHERE t.product_id = t1.product_id AND t1.id_propertie = 100 AND t1.select_value = 2)

    AND EXISTS (SELECT 1 FROM table t2 WHERE t.product_id = t2.product_id AND t2.id_propertie = 100 AND t2.select_value = 2)

    AND EXISTS (SELECT 1 FROM table t3 WHERE t.product_id = t3.product_id AND t3.id_propertie = 100 AND t3.select_value = 8)

    заодно уберем DISTINCT.

    Если пары id_propertie и select_value встречаются только по одному разу, можно сделать через подзапрос

    SELECT product_id FROM table t

    WHERE

    (

      SELECT product_id FROM table t1

      WHERE

        (t1.product_id AND t1.id_propertie = 100 AND t1.select_value = 2)

        OR (t1.product_id AND t1.id_propertie = 100 AND t1.select_value = 3)

        OR (t1.product_id AND t1.id_propertie = 100 AND t1.select_value = 8)

      HAVING count(product_id) =3

    ) t2

    WHERE t.product_id = t2.product_id

     

     

    чтобы не открывать новую тему, дополню свой вопрос.

    селект, который я вояю будет достаточно громоздкий, и еще он будет использовать LIMIT по количеству товаров показываемых на странице.

    к этому хозяйству, хотелось бы показать пользователю, сколько товаров нашлось по его запросу.

    использовать mysqli_num_rows не могу из за LIMIT (всегда максимальное число будет равняться этому ограничению), а использовать count(*) значит нагрузить сервер еще раз этим сложным запросом, можно не использовать LIMIT и тогда шаманить и прыгать по принесенному результату селект, но это больше похоже на го...код(мне кажется).

    Как бы Вы поступили на моем месте, спасибо всем за мнение!!!

    ​Если требуется показать колоичество записей в выборке, но не хочется выполнять громоздние запросы два раза - сохраните результат поиска во временной таблице, в пользователю покажите таблицу из нее и количество записей в ней.
    А какая разница во времени между Джоин и экзист?

    Подскажите а как сохранить во временной таблице? Квери приносит результат уже с лимитом

    чтобы не открывать новую тему, дополню свой вопрос.

    селект, который я вояю будет достаточно громоздкий, и еще он будет использовать LIMIT по количеству товаров показываемых на странице.

    к этому хозяйству, хотелось бы показать пользователю, сколько товаров нашлось по его запросу.

    использовать mysqli_num_rows не могу из за LIMIT (всегда максимальное число будет равняться этому ограничению), а использовать count(*) значит нагрузить сервер еще раз этим сложным запросом, можно не использовать LIMIT и тогда шаманить и прыгать по принесенному результату селект, но это больше похоже на го...код(мне кажется).

    Как бы Вы поступили на моем месте, спасибо всем за мнение!!!

    1. Есть CALC_FOUND_ROWS или как-то так

    2. Сложные запросы — плохо. Подумате, возможно, стоит упростить.

    Согласен что это плохо но у меня нет возможности строить процедуру, с ней было бы проще
  9. чтобы не открывать новую тему, дополню свой вопрос.

    селект, который я вояю будет достаточно громоздкий, и еще он будет использовать LIMIT по количеству товаров показываемых на странице.

    к этому хозяйству, хотелось бы показать пользователю, сколько товаров нашлось по его запросу.

    использовать mysqli_num_rows не могу из за LIMIT (всегда максимальное число будет равняться этому ограничению), а использовать count(*) значит нагрузить сервер еще раз этим сложным запросом, можно не использовать LIMIT и тогда шаманить и прыгать по принесенному результату селект, но это больше похоже на го...код(мне кажется).

    Как бы Вы поступили на моем месте, спасибо всем за мнение!!!

  10.  

    В этом случае сработает один или два и три условия а мне надо чтобы сработали только три условия показать товары которые отвечают всем трём или не показывать этот товар

    Как то вы заморочились ...

     

    SELECT DISTINCT *FROM table t1LEFT JOIN table t2  ON (t2.product_id = t1.product_id)LEFT JOIN table t3  ON (t3.product_id = t1.product_id)WHERE t1.id_propertie = 100 AND t1.select_value = 2 AND t2.id_propertie = 200 AND t2.select_value = 1 AND  t3.id_propertie = 300 AND t3.select_value = 8 

    не то слово заморочился, но задача показать те товары, которые отвечаю запросу и если есть 3-4-10 условий то товары должны отвечать всем или он не подходит, на том и стою ))))))) Вам огромное спасибо за ответы, пробую, тружусь, если будут еще мысли буду признателен Вам!!!!

  11. Все вам правильно по-ходу написали, используйте OR

    (`id_propertie` = 100 AND `select_value` = 2)OR(`id_propertie` = 200 AND `select_value` = 1)OR(`id_propertie` = 300 AND `select_value` = 8)
    Как бы только запрос не получился жирным как Ж орангутанга

    В этом случае сработает один или два и три условия а мне надо чтобы сработали только три условия показать товары которые отвечают всем трём или не показывать этот товар
  12. хм даже предположить не могу как составить такой запрос

    у меня есть две таблицы одна t1 в которой данные товара и перечень общих для всех товаров проперти и вторая t2 таблица в которой все проперти

    вот теперь делаем

    select *

    from t1

    inner join t2 on t1.id_product = t2.id_product

    where t1.product_style = 3

    and t2.propertie_product = 99 and t2.value = 3

     

    а вот подскажите куда здесь еще left join вставить

    спасибо Вам

  13. Дело в том ,что у product может быть несколько properties и соответственно values ,мне надо вытащить все products, которые отвечают этим нескольким условиям сразу ,а не одному из них

    вот такой вариант
    id_product id_propertie select_value
    10011111 98 3
    20022222 98 3
    10011111 75 2
    20022222 75 4
    надо показать все id_product у которых id_propertie = 98 а select_value = 3 и id_propertie = 75 а select_value = 4
    исходя из моей задачи я должен получить только id_product = 20022222
    как сделать такой селект

  14. Добрый день!

    Есть таблица

     

    id_product int

    id_propertie int

    select_value int

     

    Мне нужно сделать select в котором может быть несколько пар, я имею ввиду 

    id_propertie = 100 and select_value = 2 

    и

    id_propertie = 200 and select_value = 1

    и

    id_propertie = 300 and select_value = 8

     

    я дел так (id_propertie = 100 and select_value = 2) and (id_propertie = 200 and select_value = 1) and (id_propertie = 300 and select_value = 8)

     

    ))не работает

    смысл в том, что из таблицы надо достать все id_product, в которых есть все условия по парно.

    Спасибо большое за помощь!

     

     

  15.  

    Спасибо, не утешающий ответ

    А в чём проблема? Я просто из вашего запроса не понимаю ни структуры базы, ни связей в ней и что вообще там к чему. Плюс, конечно, надо брать и на реальных данных смотреть как и что будет работать. А так я, конечно, дал просто общие советы.

     

    Да нет просто я думал избежать многочисленных селектов. Я так понимаю если мне надо 9-ть случайных товаров по одному от девяти компаний мне нужно сделать девять селектов и через код делать случайный товар и потом делать ещ запрос или один запрос много кода а потом еще запрос чтобы получить все данные по товару

     

    мне предложили добавьте поле RAND() и отсортируйте по нему.

    получается быстро но пока у меня не много товаров да еще и проблема что если я добавляю ORDER BY page_up.date_page_up DESC то все рушется а мне сортировка по date_page_up обязательна без нее нет смысла всей этой затеи

  16. ORDER BY RAND() и GROUP BY в помощь. Но это плохая идея по скорости, тем более если будет много товаров. Ещё один вариант: COUNT + LIMIT %случайное_число%, 1 и много простейших запросов. Потом всё пробуете прогнать через EXPLAIN и смотрите что из этого нормально работает.

    Спасибо, не утешающий ответ

  17. Здравствуйте!
    У меня есть компании которые размещают свои товары, у товаров есть один из параметров цвет.
    Мне надо выбрать один случайный товар у каждой из 9 первых компаний, цвет которого соответствует запросу.
    Вот мой пример запроса в котором я получаю компании и их товары с соответствующим цветом, но как теперь случайным образом выбрать один товар у каждого из 9-ти не знаю, помогите пожалуйста.
    Записей будет очень много более 3-4 миллионов

    SELECT products.`uniq_id` , products.id_product, products.article_product, page_up.date_page_upFROM images_products AS products, products_color AS color, data_page_up AS page_upWHERE products.uniq_id = page_up.uniq_idAND products.id_product = color.id_productAND color.colors_nameIN ( 1, 4, 12, 15 )GROUP BY products.id_productORDER BY page_up.date_page_up DESC 
  18. Здравствуйте!

    Помогите разобраться, вот пример меню http://svetilnik-online.ru/

    Там есть картинка  

    background-image: url(../images/menu_tab.png);

    которая меняет, как я понимаю, размер в зависимости от длины текста меню.

    Подскажите как они это делают.

    Спасибо!

  19. Здравствуйте!

    Не думаю,что можно выдернуть таким образом, может попробовать сделать дополнительное скрытое поле на каждую ячейку, данные которой понадобятся, и потом путем getElementById этого поля получать данные и обрабатывать их.

  20. Если не ошибаюсь, так как все происходит на стороне клиента, то очищается само, впрочем как и в php на стороне сервера

    а в c, c++, java при закрытии программы очищали память, опять же если не ошибаюсь, последний раз что-то писал на c++ много лет назад

    Браузер сам автоматически удаляет мусор очищая память. На каждый объект есть ссылка, и в случае если нет ссылки то происходит очищение из памяти

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy