• Вывод значений базы MySQL

    Stdit
    @Stdit
    База спроектирована нормально, гораздо хуже было бы с таблицей вида (деталь, магаз1, магаз2, магаз3).
    Попробуйте группировку, например так:
    select номер_детали, group_concat(номер_магазина) as мазагины from детали group by номер_детали
    
    Ответ написан
    3 комментария
  • Отладка дозагруженного javascript?

    taliban
    @taliban
    php программист
    для разработки можете и заранее подгрузить, и когда все проверите уже то грузите динамически.
    Ответ написан
    Комментировать
  • Как правильно расставить индексы в БД?

    @ShouldNotSeeMe
    Если все запросы у Вас ограничиваются теми четырьмя вариантами, то достаточно оставить индексы по B,C,A и A,C,D.
    Ответ написан
    1 комментарий
  • Как правильно с точки зрения SEO сделать фильтры в каталоге товаров?

    mitry
    @mitry
    Использовать <link rel="canonical" href="http://sample.tld/real/path/page.ext"> в хедере страницы. Подробнее: support.google.com/webmasters/bin/answer.py?hl=ru&answer=139394
    Ответ написан
    9 комментариев
  • Пронумеровать поле в MySQL таблице с сортировкой и группировкой?

    FreeTibet
    @FreeTibet
    dharma supplier
    UPDATE category SET number = 0;
    
    SET @old_category = -1;
    SET @num = -1;
    UPDATE category AS c
    INNER JOIN (
    	SELECT 
    	    t.article_id,
    	    t.sort,
    	    t.category_id,
    	    @old_category,
    	    @num := CASE
    	    	WHEN @old_category <> t.category_id THEN 0
    	        ELSE @num + 1
    	    END AS number,
    	    @old_category := t.category_id
    	FROM (
    		SELECT
    			a.article_id, 
    		    a.sort, 
    		    c.category_id
    		FROM category AS c
    		INNER JOIN article AS a ON a.article_id = c.article_id
    		ORDER BY c.category_id, a.sort
    	) AS t
    ) AS t
    ON t.article_id = c.article_id
    SET c.number = t.number;
    
    SELECT c.*, a.sort FROM category AS c 
    INNER JOIN article AS a ON a.article_id = c.article_id
    ORDER BY c.category_id, a.sort
    


    Результат:
    aricle_id | category_id  | number | sort
    5         | 1            | 0      | 4
    3         | 1            | 1      | 7
    4         | 2            | 0      | 2
    1         | 2            | 1      | 3
    2         | 2            | 2      | 5
    
    Ответ написан
    8 комментариев
  • Пронумеровать поле в MySQL таблице с сортировкой и группировкой?

    pel
    @pel
    Че-т не вышло сделать сходу без дополнительных телодвижений, поэтому предложу пока такой вариант (дальше скрипты с create'ами. Убирать их не стал — мне кажется, так «нагляднее» будет):

    -- Ваша таблица article
    CREATE TABLE a (
    a_id INT( 10 ) NOT NULL ,
    s INT( 10 ) NOT NULL
    ) ENGINE = MYISAM ;
    
    INSERT INTO  a (a_id , s) VALUES 
    (1, 3), 
    (2, 5), 
    (3, 7), 
    (4, 2), 
    (5, 4);
    
    -- Ваша таблица category
    CREATE TABLE c (
    a_id INT( 10 ) NOT NULL ,
    c_id INT( 10 ) NOT NULL ,
    n INT( 10 ) NOT NULL DEFAULT 0
    ) ENGINE = MYISAM ;
    
    INSERT INTO c (a_id , c_id , n) VALUES 
    (1, 2, 0), 
    (2, 2, 0), 
    (3, 1, 0), 
    (4, 2, 0), 
    (5, 1, 0);
    
    -- В таблицу категорий добавляем временное поле, 
    ALTER TABLE c ADD s_tmp INT NOT NULL DEFAULT '0';
    -- в которое закинем соответствующие значения sort из article
    UPDATE c 
    SET c.s_tmp = ( 
    	SELECT s
    	FROM a
    	WHERE a.a_id = c.a_id 
    );
    
    -- Создадим временную таблицу, в которую с помощью как раз той магии, которая вам, собственно, нужна, проставим позиции внутри групп
    DROP TABLE IF EXISTS c_tmp;
    
    SET @cat:='', @num:=1;
    
    CREATE TABLE c_tmp 
    SELECT c_id, a_id,
    	@num := IF( @cat = c_id, @num +1, 1 ) AS row_num, 
    	@cat := c_id AS dummy
    FROM c
    ORDER BY c_id, s_tmp;
    
    -- Теперь эти сгенерированные значения перекидываем в основную таблицу
    UPDATE c 
    SET c.n = ( 
    	SELECT row_num
    	FROM c_tmp AS ct
    	WHERE c.a_id = ct.a_id AND c.c_id = ct.c_id 
    );
    
    -- Ну и убираем 
    ALTER TABLE  c DROP  s_tmp;
    -- за собой мусор
    DROP TABLE  c_tmp;
    
    Ответ написан
    4 комментария
  • Как завершить сессию на Хабре?

    Stdit
    @Stdit
    Удалить cookie хабра в браузере: PHPSESSID, hsec_id, остальные тоже не помешает.
    Ответ написан
    Комментировать
  • Музыка без обрывов на сайте при переходе между страницами

    ShpuntiK
    @ShpuntiK
    Недавно реализовывал такое. Понадобится ajax (можно jquery, можно чистый js) и history api (тут я только чистый js использовал).

    Вкратце алгоритм такой: пользователь нажимает переход на др страницу сайта, событие ловится и через ajax отдаётся на сервер, там скрипт отдаст код страницы, на которую надо перейти. History api должно изменить адрес в адресной строке браузера, ну и если пользователь будет надимать кнопку назад, то и на неё повесить событие (про это всё хорошо расписано в статье, ссылку на которую я выше дал).
    Ответ написан
    Комментировать
  • Кэширование flash-приложений в браузере на долгое время

    Riateche
    @Riateche
    Используйте кеширующий прокси. Например, HandyCache. В нем можно прописать правило, чтобы он намертво кешировал все *.swf файлы. Подобные программы вообще очень помогают в условиях ограниченного трафика.
    Ответ написан
    1 комментарий
  • Как безопасно пользоваться OperaMini на Android-телефоне через EDGE с оплатой за трафик?

    Eternalko
    @Eternalko
    Андроид ПОСТОЯННО использует интернет. Каждые 5 минут какое-то сраное приложение будет просится в нет. И вы это не остановите. Вы что, только вчера телефон купили? Будете знать :)

    Можно это безобразие только рубильником вырубить. Тоесть отключить мобильный интернет, когда в нем нет потребности. Все.
    Ответ написан
    6 комментариев
  • Как безопасно пользоваться OperaMini на Android-телефоне через EDGE с оплатой за трафик?

    Eternalko
    @Eternalko
    Я решил это таким образом: через приложение Tasker.

    Там все настроил, как вы хотите.

    1) Раз в 15 минут ищет знакомый вай фай. Если находит, врубает и все пользуются. Если нету, то вырубает, ждет 15 минут. Экономит заряд и не нужно вручную вырубать.

    2) Когда запускаю нужные приложения (opera, google maps, dropbox), то срабатывает свич:
    OnAppLoad do:
    — Search WiFi. If no WiFi:
    Turn on 3G.
    OnAppClose
    — Turn off 3G.

    Все. Просто и то что надо. И не нужно ядро пересобирать :D
    Ответ написан
  • Бюджетный спутниковый HD ресивер для кардшаринга и интернет магазин?

    @digdream
    а чего хочется от ресивера?
    себе давно уже приобрел GI7699 и весьма доволен им. но он не на линуксе функцию ресивера выполняет замечательно. шара — летает. с флешки играет музыку, показывает видео включая mkv, но по всеядности его немного обогнал телевизор LG smart lv3700 — что у ресивера не получилось проиграть — он подхватил. пользуюсь иногда записью на винт — ставлю на запись, затем на паузу. делаю свои дела если надо, а потом спокойно смотрю, проматывая рекламу. пишет TS с mpeg2 довольно внушительных размеров за час получается около 10гб. шара настраивается вообще элементарно по сравнению с linux ресиверами.
    посмотрел на 8120 и 8580 — вполне нормальные ресиверы
    более подробно можно пообщаться с владельцами на gisclub.tv/index.php?action=forum
    Ответ написан
    3 комментария
  • Помогите с идеей

    Eternalko
    @Eternalko
    * Включил генератор идей *

    * выключил *

    Сделайте приложение. Называется «мне скучно». Кто-то сидит один дома. Постит твит или еще что-то в приложение. Типа «мне грустно», «мне скучно». И этот твит высылается всем подписчикам в радиусе 5 км. Может кто-то как раз в кафе сидит скучает. Или один в бильярд играет.
    Вот пусть и друг друга потешат.

    Я просто как-то на НГ в метро ехал. Мой поезд тормознул. Оказывается вечером какой-то парень прыгнул под поезд перед нами. Станцию закрыли на час. Парень мертв.
    Наверное были праздники, а ему было очень одиноко. Сам, никто не пригласил, все счастливы, а он грустит.
    Может бы этого и не случилось если бы кто-то вот так помог.
    Ответ написан
    6 комментариев
  • Временная таблица в MySQL внутри SELECT

    @Progrik
    Если стоит MySQL 5, то самое правильно что можно сделать и получить результат — написать хранимую процедуру.
    Ответ написан
    1 комментарий
  • Маски-шоу и иные проверки компаний на неицензионное ПО

    @Jazzist
    Было. Настучали. Саму картинку рассказываю:

    Приходит ко мне человек на работу устраиваться. На тот момент как раз искали нового сотрудника, на неключевую должность. Не помню, давали ли объявление, но точно искали. Человек собеседование проходит, но на тот момент к обязанностям еще не приступает — просто тусуется, осваивается, знакомится. И буквально на второй день…

    Приходит к нему типа товарищ. О чем-то договариваются. Наблюдаю краем глаза. Товарищ приносит под мышкой системник в коробке, оставляет его. Я спрашиваю «что это?», крыса отвечает «да друган занес, тут там с ним туда сюда неудобно, чисто починить надо машинку. Постоит тут до вечера, типа можно?» Отвечаю «можно».

    Проходит пара часов. Товарищ в штатском возвращается, в офисе беседуют с казачком. Передает ему несколько сотенных купюр, свернутых трубочкой, и выходит. Крыса подходит ко мне и сует деньги мне в стол. Моя основная ошибка: я в этот момент интенсивно беседовал по телефону, и не придал этому жесту особого значения. Спросил его взглядом: «зачем?», он отмахнулся, типа «потом объясню», и вышел из помещения.

    Через пару минут в мой кабинет входят два товарища в штатском, а с ними две девицы. Товарищи в штатском представляются операми ОБЭП, девицы — типа понятые. Вид у них был, как у студенток с юрфака. Миллиционеры требуют предъявить денежные средства, полученные за установку серверной версии 1С 7.7. SQL на этот системный блок и на компакт-диск, который к нему сверху приляпан скотчем. Естественно, делаю круглые глаза. У нас на всех машинах стоял Red Hat (2007 год), бухгалтерша вообще на аутсорсе, налички в офисе отродясь не было, и основное — как бы вообще отвлеченный бизнес от сути их вопросов. Наезжают. Посылаю. Конкретно наезжают. Достают из моего стола сотенные купюры — восемь штук. Показывают ксерокопию, и требуют, чтобы я расписался на ней. В том, что у меня изъяли 800 рублей.

    Естественно, посылаю. Препираемся около часа, потом один доблестных служителей порядка вышел в коридор позвонить. Через несколько минут приезжают маски-шоу, меня роняют мордасами в пол и увозят в отделение УВД.

    В кабинете милиции прессуют еще пару часов. Прессуют конкретно, разве что не бьют. Подпиши да подпиши. Естественно, не подписываю. В соседнем кабинете типа прессуют крысу, которого забрали вместе со мной.

    Ничего я им не подписал, и ни в чем не сознался — сознаваться было не в чем. Через пару часов обоих выводят вниз. Думал, отпускают — фиг там. Крысу выводят в фойе, и он вроде как покидает отделение милиции. А меня заводят в спецприемник. Оформляют, как задержанного за «неповиновение сотруднику милиции».

    Последующие двое суток провел в спецприемнике. Небольшая холодная комната без окон и отопления. На улице была зима, мороз. Вместе со мной там было еще человек 30 — бомжи, пьяные, левые, правые…

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

    На третьи сутки меня оттуда вывели, и увезли непосредственно в мировой суд. Судье рассказал все как есть, но она приговорила меня к штрафу в 1000 рублей, за то-же «неповиновение». Вышел на свободу непосредственно из суда. Было сложно поймать такси, батарейка в мобиле села, я был в пальто (зима на улице), вид у этого пальто был соответствующий, и у меня тоже… Шлепал до дому пешком, даром что не особо далеко.

    Выяснил, что «потерпевшей стороной» по делу является фирма — дилер 1С из соседнего города. Собственно, знакомые. Несколько раз общались, работали вместе, встречались на семинарах, выставках и конференциях. Съездил к ним, просил урегулировать вопрос. Интересный момент — отказали. Много думал о сексуальной ориентации того директора, и дилеров 1С вообще.

    Версия той самой 1С-ки, которую я якобы продал за 800 рублей сотруднику ОБЭП, стоила на тот момент более 70 тыс. рублей. Поэтому говорили о причинении ущерба в особо крупном размере и так далее.

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

    Крысу вычислил. Действительно засланный казачок, наркоман — милицейская шестерка. Меня действительно заказали, его подослали и так далее.
    Ответ написан
    1 комментарий
  • Как можно уплотнить таблицу методом получения среднего значения для каждых N записей?

    @65520 Автор вопроса
    Кому интересно — группировать надо по FLOOR(counter/5).
    Ответ написан
    Комментировать