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.

PHP: Dynamiczne tworzenie zmiennych na podstawie indeksów tablicy.

Podczas pisania kodu czasami natrafiamy na sytuację, gdzie potrzebne informacje znajdują się w mało wygodnym dla nas kontenerze. O ile tablice w języku PHP są jednym z najprostszych w wykorzystaniu kontenerów, jakie do tej pory widziałem, ciągłe wykorzystywanie konstrukcji $arr[‘sth’] potrafi zmęczyć nawet bardzo wytrwałego programistę. W dzisiejszym wpisie chciałbym przedstawić dwie techniki pozwalające na uniknięcie tego typu utrudnień.

Problem: $arr[‘index0’], $arr[‘index1’]…

Problem polega na tym, że podczas odwoływania się do informacji zawartych w tablicy… musimy odwołać się do tablicy:

PHP: Indeks tablicy może być tylko liczbą całkowitą lub ciągiem znaków.

Dzisiaj znowu sobie ponarzekam na PHP, bo znowu odkryłem pewną bardzo dziwną “funkcjonalność” tego języka. Jak wszyscy wiemy udostępnia nam on konstrukcję array(), dzięki której możemy tworzyć dowolne zbiory danych, znane w programowaniu jako tablice, lub, wśród programistów PHP - jako arraye [wym. “araje” ;]]. Okazuje się, że w tak “dowolnej” konstrukcji, niestety nie wszystko jest “dowolne”, a już na pewno nie typy danych, które mogą być używane jako indeksy.

Problem: nie wszystko indeks tablicy, co zawiera zmienna.

Otóż, pewnego pięknego dnia stwierdziłem, że napiszę jakiś ciekawy skrypcik, oczywiście w PHP. Po krótkim zastanowieniu i przeiterowaniu po liście potencjalnych CPNS [Ciekawych Pomysłów Na Skrypty] stwierdziłem, że najciekawszym na daną chwilę pomysłem będzie rysowanie wykresów i wysyłanie do przeglądarki obrazka wynikowego. Techniczne sprawy [tak, użyłem GD] pominę, ponieważ nie są istotne.