Linkdump #66: My... my... MySQL!

Myślałem trochę nad całą serią wpisów w tej kategorii i zauważyłem, że bardzo mało (właściwie wcale nie ma) jest wpisów o bazach danych. Na blogu znajduje się już wiele tekstów z linkami o PHP, JavaScripcie i innych językach programowania, a bardzo mało o samych technologiach / narzędziach, które przy okazji wykorzystujemy. Aby to zmienić, dzisiejszy Linkdump jest poświęcony bazie danych MySQL, jako najpopularniejszej i wciąż ambitnie rozwijanej, pomimo przejęcia Suna przez Oracle.

Doctrine: Operator INDEX BY - indeksowanie wyników zapytania według wybranego pola.

Pobieranie informacji z baz(y) danych to jedna z podstawowych czynności, jaką wykonujemy podczas tworzenia różnego rodzaju stron internetowych. Aby uzyskać potrzebne dane w zdecydowanej większości przypadków wystarczy proste zapytanie SQL [w przypadku Doctrine możemy też wykorzystać język DQL]. Niektóre przypadki wymagają jednak potrzeba bardziej ambitnej ekwilibrystyki, aby przygotować odpowiedni zbiór rekordów. W dzisiejszym wpisie chciałbym pokazać jedną z możliwości biblioteki Doctrine - indeksowanie wyników zapytania według samodzielnie wybranego pola.

Linkdump #53: Ej, dżej, jQuery.

Pomimo upływu czasu i wielu zmian w środowiskach programistów stron internetowych, biblioteka jQuery zdaje się być cały czas najpopularniejszym rozwiązaniem ułatwiającym ich pracę. Mimo okrzyknięcia tej biblioteki “PHP4 JavaScriptu”, na pewno można się w niej doszukać wielu pozytywnych aspektów. W dzisiejszym Linkdumpie chciałbym po raz kolejny przedstawić kilka rzeczy pozwalających na odzyskanie wiary w jQuery.

(My)SQL: Jak znaleźć poprzedni i następny rekord w jednym zapytaniu?

Pracowałem ostatnio nad skryptem galerii w jednym z projektów i w pewnym momencie natrafiłem na problem polegający na wyświetlaniu w widoku pojedynczego zdjęcia linków kierujących do następnego i poprzedniego elementu. Nie jest to pierwszy raz, kiedy zostałem zmuszony do “poradzenia sobie” z tego typu sytuacją, dlatego uznałem, że warto opisać wykorzystane rozwiązanie na blogu. Standardowo mam nadzieję, że się przyda, zatem zapraszam do lektury. ;]

(My)SQL: Aktualizowanie pola typu TIMESTAMP.

Oprogramowanie komputera zawiera w sobie wiele pułapek, o których trzeba wiedzieć, żeby w nie nie wpaść. Szczęśliwym trafem jeszcze nie miałem okazji cierpieć przez opisywany dzisiaj problem - przeczytałem o nim podczas poszukiwania informacji na temat innego, który już opisałem na niniejszym blogu. Serwer SQL, a dokładnie MySQL, to jedno z najpopularniejszych rozwiązań tej klasy, a co za tym idzie pewnego rodzaju standard. W dzisiejszym wpisie chciałbym pokazać jeden z problemów, na jaki możemy się natknąć podczas pracy z bazą danych opartą właśnie o niego.

MySQL Workbench: Generowanie plików YAML dla Doctrine i symfony.

W codziennej pracy używamy wielu narzędzi wspomagających naszą pracę przy tworzeniu stron internetowych i wykonywaniu innych usług z tym związanych. Poczynając od IDE, poprzez różnego rodzaju narzędzia konsolowe, aż po wtyczki w przeglądarkach internetowych jesteśmy zależni od wielu tysięcy linii kodu, dzięki którym nasze życie jest o wiele łatwiejsze, niż w przypadku, kiedy musielibyśmy wykonać tą pracę sami. W dzisiejszym wpisie chciałbym pokazać jeden z niedawno poznanych sposobów na ułatwienie sobie życia podczas pracy z biblioteką Doctrine i frameworkiem symfony.

WAMP: Usuwanie komunikatów o błędach XDebug.

Zainstalowałem i skonfigurowałem dzisiaj najnowszą wersję serwera WAMP - 2.1e. O niektórych problemach związanych z jego działaniem pisałem już wcześniej, także temat ten jest Wam na pewno znany. W dzisiejszym wpisie chciałbym pokazać, w jaki sposób ukryć “pomarańczowe komunikaty” o błędach wykonania skryptu PHP, jakie serwuje nam debugger XDebug.

[(My)SQL] Pobieranie identyfikatora nowego rekordu bez wykonywania zapytania INSERT.

Witajcie jeszcze raz. ;] Jak mogliście zauważyć, ostatnio znalazło się na moim blogu kilka wpisów na temat pewnych problemów z językiem SQL, a konkretnie kilku sytuacji brzegowych, w których uzyskanie interesujących nas danych okazało się nietrywialnym zadaniem. Nie inaczej będzie też dzisiaj, jako, że czytając różne materiały w serwisach związanych z programowaniem trafiłem na problem pobierania identyfikatora nowego rekordu bez wykonywania zbędnego zapytania INSERT. Nie namyślając się długo dopisałem ten problem do listy pomysłów, a dzisiaj doczekał się on realizacji. ;] Zapraszam do lektury.

[PHP] Przekazywanie tablic w żądaniu GET.

Ten pomysł “wisiał” na mojej liście rezerwowej przez dosyć długi czas, czekając na dobrą okazję do podjęcia tematu. Ze względu na to, że zwykle dzielę się z Wami rozwiązaniami napotkanych przeze mnie błędów / problemów, stwierdziłem, że czas na “coś nowego” - coś, co przynajmniej raz na jakiś czas przełamie schemat. Dzisiejszy wpis będzie więc całkowicie poświęcony pewnej ciekawej funkcjonalności, która może dość istotnie ułatwić obsługę skryptów.

[PHP, (My)SQL] Systemy uprawnień na stronach internetowych, część 0x03: Macierz uprawnień.

W ostatnich wpisach z tej serii skupialiśmy się na zarządzaniu uprawnieniami pewnych grup użytkowników naszej aplikacji. Obszary dostępu to nic innego jak podział na dwie sztywne grupy posiadające [lub nie] dostępu do pewnych zabezpieczonych elementów systemu, zaś poziomy to tylko wykorzystanie abstrakcji do złożenia w jednym miejscu wielu obszarów. Opisując te sposoby “celowo zapominałem” o tym, że nie zawsze da się podzielić użytkowników na odpowiednie grupy, ponadto nie zawsze nadane uprawnienia muszą być sztywne - czasem chcemy np. dać dodatkowo jednemu zaufanemu użytkownikowi dostęp do statystyk witryny, albo przeglądania artykułów - wtedy musielibyśmy stworzyć albo oddzielny obszar albo nowy poziom, który notabene zburzyłby dotychczas istniejącą strukturę. Co zrobić z takim problemem?