UPDATE z SELECT w MySQL oraz PostgreSQL

Często dostaje pytanie, jak zrobić UPDATE na całej tabeli z wykorzystaniem polecenia SELECT.
To pytanie powstaje przez błędne założenie, że trzeba znać konkretne ID danego wiersza w bazie danych.
Wiele osób próbuje zatem zrobić pętlę w np. w PHP, która robi ręcznie update na każdym wierszu z osobna.

Wygląda to mniej więcej tak:

Niepoprawne rozwiązanie

<?
  $subjectArray = $db->sql('SELECT id FROM subject');
  foreach ($subjectArray as $key => $value)
  {
    $iloscPostowArray = $db->sql('SELECT count(id) AS posts_count FROM posts WHERE subject_id='.$value['id']);
    $iloscPostow = $iloscPostowArray[0]['posts_count'];
    $db->sql("UPDATE subject SET posts_count=$iloscPostow WHERE id=".$value['id']);
  }
?>


Przykładowy schemat naszej bazy

Mamy dwie tabele: subject i posts
Tabela "subject":
- id - id danego tematu
- posts_count - liczba postów w danym temacie

Tabela "posts":
- id - id danego postu
- subject_id - id tematu do którego należy post

Dlaczego powyższe rozwiązanie jest niepoprawne

Z prostego powodu: przy dużej bazie skrypt może nie wyrobić z pamięcią lub nie zmieścić się w czasie wykonywania (nie zawsze mamy możliwość zmodyfikowania odpowiednio plików konfiguracyjnych). Już nie wspomnę nawet o tym, że takie rozwiązanie powoduje u nas ogromną liczbę zapytań SQL.

Poprawne rozwiązanie

UPDATE subject SET posts_count=(SELECT COUNT(id) FROM posts WHERE subject_id = subject.id)


Tak jak widzimy cały kod został sprowadzony do jednego polecenia SQL. Jest to o wiele lepsze rozwiązanie tego problemu.

UWAGA
Przy tworzeniu kolumny działającej na zasadzie naszego posts_count z tabeli subject, pamiętajmy o aktualizowaniu liczby postów najlepiej przy użyciu triggerów

Zapraszam do dyskusji, spisywania innych rozwiązań z użyciem UPDATE i SELECT. Jeżeli znajdziecie jakieś błędy w tym co napisałem, to też proszę mi to zgłosić ;)

[Poszukuje] Dobry, darmowy bug tracker i todo list online

Jak w temacie.
Szukam po necie różnych serwisów typu bug tracker czy "listę zadań do zrobienia" w formie serwisu online lub skryptu do osadzenia na stronie. Odpadają programy desktopowe ponieważ ma to pomóc w zarządzaniu teamem więc dostęp muszą mieć wszyscy najlepiej z poziomu strony www.

Znacie, polecacie jakieś serwisy tego typu?

Widget Gadu-Gadu - strzał w 10-tke!

Mimo że nie przepadem za Gadu-Gadu, muszę przyznać że bardzo przypadł mi do gustu obecny Widget który można osadzić na swojej stronie. Brakowało mi takiego rozwiązania umożliwiającego szybki kontakt z np. autorem bloga z poziomu przeglądarki.
Czasem też chcemy się po prostu spytać o coś błahego przy jak najmniejszym wysiłku, więc takie rozwiązanie wydaje się świetne ;)

Dlaczego akurat Widget GG? Ponieważ nie widziałem żadnego odpowiednika dla jabbera. Niestety jestem też realistą i muszę z przykrością przyznać, że używając alternatywnego komunikatora często jesteśmy zależni od samego protokołu Gadu-Gadu ze względu na naszych "nie obytych w świecie komunikatorów" znajomych ;)

Dla zainteresowanych kreator Widgeta:
http://www.gadudodatki.pl/webAplikacje/show/id/39077

God Mode w GTA 4


Wielu graczy po przejściu gry chciałoby się trochę z nią pobawić. Autorzy jakoś "zapomnieli" dać kodu na nieśmiertelność w GTA IV.

Miałem napisać o tym już dawno ale jakoś dzisiaj dopiero mnie złapała wena.

Nieśmiertelność w GTA IV - krok po kroku

Niestety nie obejdzie się bez instalacji odpowiedniego moda który to umożliwia.
Opis instalacji krok po kroku
Ściągamy dwa pliki:
http://www.gtagaming.com/downloads/gta-iv/script-mods/2130
oraz:
http://www.gtagaming.com/downloads/gta-iv/tools/1976
Pierwszy plik to sam mod. Drugi jest dla osób które nie mają ASI Loader'a potrzebnego do odpalenia modów.
Z archiwum z drugiego linka przenosimy plik: dsound.dll do głównego katalogu z grą czyli np: C:\Gry\GTA 4
Następnie z archiwum z pierwszego linka robimy to samo ale tym razem z plikami: God Mode.asi oraz GodMode.ini
Możemy śmiało odpalić grę. Nieśmiertelność w GTA 4 działa! Have fun! :)

Konfiguracja GodMode.ini

Wszystko jest bardzo proste. Otwieramy plik GodMode.ini w notatniku (chociaż polecałbym Notepad++)
Naszym oczom ukazuje się plik gdzie mamy np. takie wartości jak:



Wszystko jest bardzo proste. W komentarzach (ten zielony tekst) są informacje jakie numerki możemy wpisać w jakim miejscu :)
Przykładowo: Jeśli chcemy podczas gry mieć granat zamiast Mołotowa zmieniamy wartość:
Thrown=5
na:
Thrown=4
Tak jak pisałem. Wszystko jest bardzo proste. Chyba każdy sobie z tym poradzi :)

Mirrory gdyby download nie działał

ASI Loader
GodMode v1.1

SEO Spam
Nieśmiertelność w GTA 4, Kod na god mode w GTA IV, Kody na nieskończoną amunicje w GTA 4, niekończąca się amunicja w GTA IV, jak zrobić, poradnik, krok po kroku

Dexter - 3 Sezon już w necie :)


Sezon 3 Dextera już w sieci

Zapewne wielu jogger'owców zna ten serial, i tak jak ja są jego wielkimi fanami :)
Przejdę od razu do konkretów.
Ostatnio szperając po necie natrafiłem na pierwszy odcinek nowego sezonu Dextera. (Jeśli się nie mylę to premiera trzeciego sezonu odbyć się miała dopiero 28 września 2008 w amerykańskiej telewizji: Showtime (tak przynajmniej podaje angielska wikipedia oraz IMDB). Jak to bywa w świecie coraz częściej nowe odcinki itp dostępne są już przed oficjalna premierą. Przykładem tym razem wydaje się być Dexter? :)

Odcinek 1 trzeciego sezonu Dextera - Download

http://www.mininova.org/tor/1773191
Polecam każdemu :) Super odcinek z super zakończeniem :)
Kto byś się spodziewał że Dexter.... albo nie.... nie będę zdradzał zakończenia :)
MIŁEGO OGLĄDANIA :)

Natio.pl - proszę o testy


Siemka wszystkim ;-)
Dziś oficjalna premiera wersji beta wyszukiwarki ludzi - Natio.pl, którą tworzyłem wraz z pomocą twórców Patrz.pl za co jednocześnie im bardzo dziękuję :)

Prośba do użytkowników joggera

Mam wielką prośbę do użytkowników joggera o testy serwisu, uwagi co działania, designu, pozycji różnych elementów na stronie czy też propozycji nowych funkcji itp.
Wszelkie komentarze bardzo mile widziane :-)
Z góry dziękuję za pomoc :-)

Trochę o Natio.pl

Natio.pl w swoim założeniu ma być łatwą w obsłudze wyszukiwarką ludzi z dużym naciśnięciem na prostotę i przejrzystość strony. Natio.pl potrafi rozpoznać czy do zapytania wprowadziliśmy Imię, nazwisko, nick, email, numer telefonu czy identyfikator danego komunikatora. System rozpoznaje też czy podczas wyszukiwania wprowadziliśmy nazwę miasta np: Dawid Szymański Gniezno.
Jest też możliwość powiększania zdjęć z Goldenline.pl.
Obecnie serwis przeszukuje serwisy: Nasza-klasa.pl, Goldenline.pl , Myspace.com , Facebook.com, oraz Linkedin.com
Jeśli ktoś ma propozycję dodania innych serwisów to proszę śmiało je wypisywać w komentarzach :-)


Dodatek do Firefoxa: Okienko szybkiego wyszukiwania można dodać klikając znaczek:

znajdujący się na głównej stronie Natio.
Zapraszam jeszcze raz do zgłaszania wszystkich uwag! :-)

Screeny

Free Image Hosting at www.ImageShack.us Free Image Hosting at www.ImageShack.us Free Image Hosting at www.ImageShack.us

Podziękowania

Za pomoc w realizacji szczególnie dziękuje ekipie Patrz.pl ;-)

Poszukuje programu...

Krótko i na temat:
Poszukuje programu/strony www do tworzenia projektów wyglądu strony
Chodzi mi o coś takiego żeby po prostu w tym programie rozmieszczać różne części strony i układać je według własnej fantazji.

Tak wiem, od tego jest kartka i długopis, ale sęk w tym że te projekty interface trzeba nieraz wysłać komuś innemu a skan obsmarowanej kartki nie jest zbyt profesjonalny.

Z na ktoś takie programy/strony www itp?

Z góry dzięki za pomoc :)

Spis polskich miast


Jako, że potrzebowałem do swojego projektu (który niedługo będzie miał oficjalna premierę ;)) spisu miast Polski, a coś nie mogłem za bardzo znaleźć go w całości to postanowiłem sam go stworzyć.

Udostępniam go specjalnie dla wszystkich zainteresowanych w dwóch wersjach: małej i dużej. Mała posiada 305 miast a duża 879.

DOWNLOAD

Miasta Polski - wersja mała - 305 miast
Miasta Polski - wersja duża - 879 miast

Mam nadzieję, że nie pominąłem żadnych województw itp, w razie czego piszcie ;-)

Pozdrawiam ;-)