• Programowanie aplikacji internetowych
    www.blog.adiasz.pl

    Programowanie aplikacji internetowych

  • Wpisy
  • Kombinacje bez powtórzeń zbioru liczb – zapytanie SQL

    Pytanie zgłoszone przez czytelnika. W jaki sposób z zestawu liczb będących w osobnych rekordach wyświetlić kombinacje bez powtórzeń. Dla przykładu wyświetlimy kombinacje bez powtórzeń zbioru 3 elementowego ze zbioru 6 elementowego. n!/k!(n-k)!

    Tworzymy tabelę testową:

    create table test(
    id serial primary key,
      number float
    );
    
    insert into test(number) values(2.49);
    insert into test(number) values(5.11);
    insert into test(number) values(10);
    insert into test(number) values(20);
    insert into test(number) values(27.4);
    insert into test(number) values(75);
    

    W zapytaniu nasze dane złączamy 3 krotnie bo takiej wielkości zbiór unikalnych liczb chcemy uzyskać, złączamy z warunkiem na różne IDki aby uniknąć zduplikowanych liczb. Następnie w zapytaniu nadrzędnym odfiltrowujemy powtarzające się rekordy.

    W przypadku gdybyśmy chcieli uzyskać zbiory 4 elementowe należy złączyć 4 krotnie, stworzyć kolumnę number4 i dodać na nią warunek w zapytaniu zewnętrznym.

    SELECT 
    *
    FROM 
      (SELECT
        T1.number AS number1, 
        T2.number AS number2, 
        T3.number AS number3 
      FROM test AS T1 
      JOIN test AS T2 ON T1.id != T2.id
      JOIN test AS T3 ON T2.id != T3.id AND T1.id != T3.id
      ORDER BY number1, number2, number3
      ) AS sub
    WHERE 
      sub.number1 <  sub.number2
    AND
      sub.number2 <  sub.number3
    

    Wynik zapytania:

     number1 | number2 | number3
    ---------+---------+---------
        2.49 |    5.11 |      10
        2.49 |    5.11 |      20
        2.49 |    5.11 |    27.4
        2.49 |    5.11 |      75
        2.49 |      10 |      20
        2.49 |      10 |    27.4
        2.49 |      10 |      75
        2.49 |      20 |    27.4
        2.49 |      20 |      75
        2.49 |    27.4 |      75
        5.11 |      10 |      20
        5.11 |      10 |    27.4
        5.11 |      10 |      75
        5.11 |      20 |    27.4
        5.11 |      20 |      75
        5.11 |    27.4 |      75
          10 |      20 |    27.4
          10 |      20 |      75
          10 |    27.4 |      75
          20 |    27.4 |      75
    (20 rows)
    

    Masz problem SQL do rozwiązania? Napisz.

    Leave A Comment
    posted in Technologia by adiasz


  • Jak w WordPress usunąć rel=”next” i rel=”prev”?

    Według wytycznych Google atrybuty znacznika LINK rel=”next” i rel=”prev” znajdujące się w sekcji HEAD służą do wskazywania zależności pomiędzy stronami na liście stron… czyli opisują pozycje w pagerze. Jest to istotna podpowiedź na temat duplikacji oraz zależności treści w serwisie i wpływa pozytywnie na SEO. Duże było moje zdziwienie gdy niedawno odkryłem, że WordPress standardowo [...]

    Leave A Comment
    posted in Technologia
    ©2013 Adiasz blog. All Rights Reserved.


  • Systemy autonomiczne (ASy)

    O tym, że w walce z Google o wysokie pozycje w SERP/ach liczy się coraz więcej niuansów wiadomo nie od dzisiaj, Google zbiera dane o nas i o naszych serwisach próbując powiązać zapleczówki z serwisami pozycjonowanymi. Im lepiej rozłożymy zaplecza i im mniej dostarczymy danych wujkowi Guglowi tym większą szansę mamy na osiągnięcie upragnionego TOP [...]

    posted in Pozycjonowanie by Adiasz Leave A Comment
    ©2012 Adiasz blog. All Rights Reserved.


  • Hosting SEO tylko nie w hosting.seo-linuxpl.com!

    Nie jestem zwolennikiem wygłaszania negatywnych opinii na temat produktów czy usług, wolę wyłapywać i opisywać te ciekawe i pozytywne tematy niż wywlekać brudy i żalić się na źle/nie działające rzeczy. Niestety tym razem zostałem zmuszony zrobić wyjątek, gdyż to co się dzieje od kilku miesięcy na jednym z polskich SEO hostingów woła o pomstę do [...]

    posted in Narzędzia i usługi by Adiasz Leave A Comment
    ©2012 Adiasz blog. All Rights Reserved.


  • Jak w Google Analytics zliczać kliknięcia ‘like it’?

    Tworząc aplikacje czy konkursy na Facebooku z pewnością chcielibyśmy wiedzieć jak przekładają się one na przyrost fanów fanpage marki. W sekcji <head> podpinamy kod Google Analytics. Wstawiamy like button <fb:like></fb:like> Osadzamy asynchroniczny kod biblioteki Facebooka. Podpinamy funkcje pod zdarzenia facebooka ‘edge.create/ i ‘edge.remove/, w tych funkcjach wywołujemy handler Google Analytics z pożądanymi parametrami.   Z [...]

    posted in social media by Adiasz Leave A Comment
    ©2012 Adiasz blog. All Rights Reserved.


  • SEO Auto Linker

    SEO Auto Linker to niesamowicie prosty w obsłudze, skuteczny w działaniu plugin do wordpress/a automatycznie linkujący zdefiniowane przez frazy do zewnętrznych i wewnętrznych stron. Po instalacji definiujemy pary fraza – link, jeżeli fraza pojawi się w treści posta zostanie automatycznie podlinkowana. Dodatkowo można ograniczyć liczbę podlinkowanych fraz w poście oraz ograniczyć linkowanie do typu posta [...]

    posted in Wordpress by Adiasz Leave A Comment
    ©2012 Adiasz blog. All Rights Reserved.


  • Numerowanie listy zwracanych rekordów w MySQL

    Przy różnorakich konkursach często zachodzi potrzeba wyciągnięcia pozycji konkretnego użytkownika (wpisu w bazie) na tle innych użytkowników (wpisów) w ograniczeniu czasowym. Czyli np. mamy 10 tys wyników gry z danego dnia i chcemy poznać pozycje w rankingu, które zajmują użytkownicy o identyfikatorach 1, 2, 3. Oczywistym rozwiązaniem jest zwykły selekt z ORDER BY po polu [...]

    posted in Technologia by Adiasz Leave A Comment
    ©2011 Adiasz blog. All Rights Reserved.


  • UPDATE z ORDER BY w jednym zapytaniu na przykładzie orderingu danych

    Wstęp
    Mamy przykładową tabelę z userami:

    DROP TABLE users;
    CREATE TABLE users(
    id SERIAL PRIMARY KEY,
    name VARCHAR(50),
    created TIMESTAMP DEFAULT NOW()
    );

    INSERT INTO users(name) VALUES(/Marcin/);
    INSERT INTO users(name) VALUES(/Bartek/);
    INSERT INTO users(name) VALUES(/Agnieszka/);
    INSERT INTO users(name) VALUES(/Dominika/);

    Na tabeli wykonywane były wielokrotnie operacje INSERT/UPDATE/DELETE przykładowo:

    UPDATE users SET name = ‘Ania/ WHERE name = ‘Bartek/;
    UPDATE users SET name = ‘Dalia/ WHERE name = ‘Marcin/;
    DELETE FROM users [...]

    posted in PostgreSQL by Adiasz Leave A Comment
    ©2009 Adiasz blog. All Rights Reserved.
    Zobacz także:
    1. Postgres 8.3 a zgodność typów danych
    2. Aktualny czas a transakcja w PostgreSQL


  • Tani dobry hosting w USA – HostMonster

    O tym, że nie ma w Polsce ofert hostingowych o przyzwoitym stosunku cena do możliwości, chyba nie muszę nikogo przekonywać.
    Osobiście korzystam z usług dzielonego hostingu na NetArt i jestem względnie zadowolony, jednak limity typu 10gb pojemności konta czy brak dostępu przez ssh są dosyć irytujące.
    Kiedyś przez 2 lata korzystałem z usług DreamHost.com, jednak 2-letni [...]

    posted in hosting by Adiasz Leave A Comment
    ©2009 Adiasz blog. All Rights Reserved.


  • Usunięcie nieużywanych tagów z bazy WordPress’a

    Czasami zachodzi potrzeba “ręcznego” kasowania postów z WordPress/a, jako że system ten działa na MySQL MyISAM to nie wspiera kaskadowego kasowania zależnych danych.
    Skasowanie postów jest stosunkowo proste:

    DELETE FROM wp_posts WHERE conditions;

    Trudniejsza sprawa jest ze skasowaniem tagów. Na necie znalazłem poniższe zapytanie, działa wyśmielicie:

    DELETE a,b,c
    FROM
    wp_terms AS a
    LEFT JOIN wp_term_taxonomy AS c ON a.term_id = c.term_id
    LEFT JOIN [...]

    posted in SQL by Adiasz Leave A Comment
    ©2009 Adiasz blog. All Rights Reserved.
    Zobacz także:
    1. Zrzut danych z bazy do pliku w MySQL
    2. Aktualny czas a transakcja w PostgreSQL
    3. Zapytanie grupujące minimalnne wartości w grupie danych
    4. Sortowanie względem pola nie będącego w DISTINCT ON


  • Lista miejscowości w Polsce z podziałem na województwa w formacie CSV

    Sam szukałem w necie… żadnej konkretnej listy nie znalazłem wiec zostałem zmuszony samemu ją wygenerować z danych dostępnych na stronie GUS.
    Może komuś jeszcze się przyda:

    Województwa (16) w CSV (id, nazwa)
    Miejscowości (2328) w CSV (id, id województwa, nazwa)

    Miejscowości to łącznie miasta (897) i wsie. Powyższa lista obejmuje wszystkie miasta i większe wsie na które dotarł GUS. [...]

    posted in rozwiązania by Adiasz Leave A Comment
    ©2009 Adiasz blog. All Rights Reserved.


  • Skróty klawiaturowe w Eclipse PDT

    Poniżej lista mniej znanych a równie przdatnych co Crtl+C skrótów klawiaturowych. Dzięki używaniu ich przy pracy można znacznie przyspieszających prace w Eclipse PDT.
    Poniższą listę postaram się na bieżąco aktualizować.
    Ctrl + Shift + L - Lista dostępnych skrótów klawiaturowych.
    Ctrl + M - Minimalizowanie lewej kolumny (outline, explorer etc…).
    Ctrl + Shift + R [...]

    posted in rozwiązania by Adiasz Leave A Comment
    ©2009 Adiasz blog. All Rights Reserved.
    Zobacz także:
    1. Błąd SmartyPDT w Eclipse 3.3.2 i PDT 1.0.3 z JRE 1.6
    2. VIM - podstawowe komendy


  • Interfejs a klasa abstrakcyjna

    Interfejsy i klasy abstrakcyjne zostały wprowadzone do php od wersji 5.0. Konstrukcje te znacznie pomagają w uporządkowaniu struktury aplikacji, pozwalają na zachowanie kontroli typów, integralność oraz logiczną budowę aplikacji.
    Dzięki wdrożeniu tych konstrukcji do aplikacji możemy w lepszy i logiczniejszy sposób odwzorować rzeczywistość a zarazem ustrzec się potencjalnych błędów, poza tym zyskujemy większą kontrolę […]

    posted in
    php by Adiasz Leave A Comment
    ©2009 Adiasz blog. All Rights Reserved.
    Zobacz także:
    1. Przyjemna komunikacja php - flash czyli AMFPHP


  • White SEO - podstawowe przykazania jak budować przyjazne strony www

    Co to jest White SEO?
    White SEO to zbiór technik pozwalających na optymalizacje witryn internetowych pod kontem wyszukiwarek internetowych. White SEO opiera się na czystych zasadach pozycjonowania, są to metody zgodne z zasadami tworzenia stron internetowych, są akceptowane, a nawet zalecane przez same wyszukiwarki.
    Tytuł strony
    Tytuł (<title>) każdej strony powinien być unikalny, krótki i zawierać esencję tego […]

    posted in
    SEO by Adiasz Leave A Comment
    ©2009 Adiasz blog. All Rights Reserved.
    Zobacz także:
    1. Odbanowanie domeny w Google
    2. Darmowe narzędzia dla webmasterów: statystyki serwisu


  • Błąd SmartyPDT w Eclipse 3.3.2 i PDT 1.0.3 z JRE 1.6

    Niedawno update/owałem swoje IDE, i natknąłem się na mały zgrzyt w Eclipse. Okazało się, że najnowsza wersja 0.5.4 plugin/a do Smarty/ego (SmartyPDT) nie chce działać w środowisku Eclipse PDT z zainstalowanym JRE 1.6.
    Błąd
    Otwarcie pliku *.tpl w domyślnym edytorze smarty/iego dawało błąd:

    java.lang.IllegalAccessError?: tried to access field org.eclipse.php.internal.ui.editor.PHPStructuredEditor.isExternal from class org.eclipse.php.smarty.ui.editor.SmartyStructuredEditor?
    at org.eclipse.php.smarty.ui.editor.SmartyStructuredEditor?.doSetInput(SmartyStructuredEditor?.java:42) at […]

    posted in
    rozwiązania by Adiasz Leave A Comment
    ©2009 Adiasz blog. All Rights Reserved.


  • Darmowe narzędzia dla webmasterów: statystyki serwisu

    Ostatnio w ramach optymalizacji czasu i automatyzacji wykonywanych przez zemnie zadań stworzyłem mini aplikację sprawdzającą statystyki moich serwisów w wyszukiwarkach.
    Aktualnie sprawdzam: Google PR, Google link, Google site, Yahoo link, Yahoo site, MSN site. Monitoringu pozycji słów kluczowych na razie nie robiłem, gdyż jest wiele tego typu dobrych i darmowych sprawdzaczy na necie - więc szkoda […]

    posted in
    SEO by Adiasz Leave A Comment
    ©2009 Adiasz blog. All Rights Reserved.
    Zobacz także:
    1. Odbanowanie domeny w Google
    2. White SEO - podstawowe przykazania jak budować przyjazne strony www
    3. Jak w Google Analytics badać kliknięcia w linki.


  • FirePHP - przyjazne debug’owanie aplikacji internetowych

    Debugowanie to poważny problem programistów
    Bez względu na to jakimi dobrymi programistami jesteśmy nigdy nie ustrzeżemy się błędów. To normalne, błędy popełnia każdy, różnica pomiędzy dobrym programistą a złym polega m. in. na szybkości wykrycia błędnego kodu i naprawienia go.
    Mówiąc o błędnym kodzie nie mam na myśli jedynie błędów syntaktycznych, ale również błędów logicznych, które […]

    posted in
    AJAX by Adiasz Leave A Comment
    ©2009 Adiasz blog. All Rights Reserved.
    Zobacz także:
    1. Amazon s3 - sposób na tani hosting plików aplikacji.
    2. Działanie response w FireBug
    3. Przyjemna komunikacja php - flash czyli AMFPHP
    4. WP-Cache - rozwiązania problemów z semget i działaniem


  • Zapytanie grupujące minimalnne wartości w grupie danych

    Problem:
    Chcemy wyświetlić miesięczne zestawienie liczby nowo zarejestrowanych
    użytkowników mając jedynie daty ich logowań.
    Posiadane dane:
    Tabela z datami logowań użytkowników aplikacji w tabeli postaci:

    CREATE TABLE logs(
    id SERIAL PRIMARY KEY, — unikalny klucz główny
    id_user INTEGER, — klucz obcy tabeli użytkowników
    date TIMESTAMP — data logowania
    );

    Przykładowe rekordy:

    INSERT INTO logs(id_user,date) VALUES(1,/2008-01-01′);
    INSERT INTO logs(id_user,date) VALUES(1,/2008-01-05′);
    INSERT INTO logs(id_user,date) VALUES(4,/2008-01-01′);
    INSERT INTO logs(id_user,date) VALUES(2,/2008-01-01′);
    INSERT […]

    posted in
    PostgreSQL by Adiasz Leave A Comment
    ©2009 Adiasz blog. All Rights Reserved.
    Zobacz także:
    1. Sortowanie względem pola nie będącego w DISTINCT ON
    2. Jak usunąć zduplikowane rekody w tabeli bazy danych?
    3. Dumpowanie bazy danych w PostgreSQL (pg_dump)


  • Sortowanie względem pola nie będącego w DISTINCT ON

    Problem:
    Chcemy wyświetlić jedynie unikalne rekordy względem konkretnego pola/pól i posortować innym polu. W naszym przykładzie chcemy otrzymać zestawienie id_user - ostatnie logowanie
    Posiadane dane:
    Tabela z datami logowań użytkowników aplikacji w tabeli postaci:

     CREATE TABLE logs(
      id SERIAL PRIMARY KEY, — unikalny klucz główny
      id_user INTEGER, — klucz obcy tabeli użytkowników
      date TIMESTAMP — data logowania
     );

    Przykładowe rekordy:

    INSERT INTO logs(id_user,date) VALUES(1,/2008-01-01′);
    INSERT INTO […]

    posted in
    PostgreSQL by Adiasz Leave A Comment
    ©2009 Adiasz blog. All Rights Reserved.
    Zobacz także:
    1. Zapytanie grupujące minimalnne wartości w grupie danych
    2. Jak usunąć zduplikowane rekody w tabeli bazy danych?


  • Jak w XSLT usunąć puste węzły XML’a?

    Problem:
    Mamy XML:

    <root>
    <category>Biznes</category>
    <category> </category>
    <category></category>
    <category>Hobby</category>
    </root>

    Poprzez transformacje XSLT, chcemy usunąć puste węzły kategorii.
    Rozwiązanie:

    <xsl:stylesheet version=”1.0″ xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”>
    <xsl:template match=”/”>
    <root>
    <xsl:for-each select=”category”>
    <xsl:if test=”normalize-space(.)=””>
    <category>
    <![CDATA[<xsl:value-of disable-output-escaping=”yes” select=”normalize-space(.)” />]]>
    </category>
    </xsl:if>
    </xsl:for-each>
    </root>
    </xsl:template>
    </xsl:stylesheet>

    Wyjaśnienie:

    Instrukcja match=”/” wybiera wszystkie węzły XML/a
    Instrukcja for-each iteruje po wszystkich węzłach o nazwie ‘category/ (selekcja wynika z […]

    posted in
    XML, XSL, XSLT by Adiasz Leave A Comment
    ©2009 Adiasz blog. All Rights Reserved.
    Zobacz także:
    1. Jak usunąć zduplikowane rekody w tabeli bazy danych?


  • Jak w Google Analytics badać kliknięcia w linki.

    Zagadnienie
    Posiadamy serwis internetowy, na którym mamy linki wychodzące prowadzące do innych serwisów. W celach optymalizacyjnych, statystycznych lub ze zwykłej ciekawości chcielibyśmy zliczać kliknięcia w takie linki.
    Rozwiązanie
    Do rozwiązania tego zagadnienia wykorzystamy statystyki Google Analytics, które są nie dość, że są darmowe to również są zdecydowanie najlepsze na rynku.
    Aby liczyć kliknięcia stworzymy wirtualną stronę, którą następnie w […]

    posted in
    SEM by Adiasz Leave A Comment
    ©2009 Adiasz blog. All Rights Reserved.
    Zobacz także:
    1. Darmowe narzędzia dla webmasterów: statystyki serwisu


  • CloudBerry - okienkowa aplikacja do zarządzania Amazon S3

    Słowem wstępu Amazon s3 (Simple Storage Service) jest usługą online, która umożliwia składowanie danych na przestrzeni dyskowej serwerów Amazon. W zależności od potrzeb, dane mogą być składowane w USA bądź też w Europie. Usługa s3 wyposarzona jest w API dzięki któremu w prosty sposób można operować na składowanych zasobach. Przeczytaj więcej o Amazon s3.
    Do tej […]

    posted in
    Software by Adiasz Leave A Comment
    ©2009 Adiasz blog. All Rights Reserved.
    Zobacz także:
    1. Amazon s3 - sposób na tani hosting plików aplikacji.


  • Oddaj swój głos na ten kanał





    Wybierz ocene