Przeglądając różne kody często widzę, iż programiści nie zwracają uwagi na to, czy ich pola są NULL czy NOT NULL. Ba, swego czasu mi to tam też było wsio rybka. Jednak jest to dość ważna kwestia.... No dobra, świat się przez nią nie skończy, ale dobrze jest na to zwracać uwagę.
Na wielu forach i grupach widzę, iż często w kodzie zapytań tabel jest INT(11). Zdaję sobie sprawę, iż czasami jest to spowodowane skopiowaniem zapytania z jakiegoś programu, który automatycznie nam z jakiegoś powodu coś takiego dodaje. Częściej jednak jest to stosowane przez programistów z premedytacją wynikającą poprostu z niewiedzy. Postaram się tutaj tę sprawę wyjaśnić.
Dzisiaj omówię wyświetlanie rekordów "co trzy". Piszę co trzy, gdyż zazwyczaj na forum pytają o trzy. Oczywiście podane przeze mnie metody można zastosować do wyświetlania co pięć, dziesięć i ile Wam się będzie chciało. Wyświetlanie w standardowy sposób, czyli od lewej do prawej, jest banalnie proste. Piszę jednak ten artykuł, gdyż przedstawię również metodę z góry do dołu - co jest już ciutkę trudniejsze. Tak czy siak na pewno komuś się przyda.
Miałem wczoraj nie lada zagwostkę. Chciałem wcielić w życie kod z mojego faq numer danego wiersza. Potrzebne mi to było do wyliczania pozycji danego posta. Jakież było moje zdziwienie gdy się okazało, że podzapytanie nie uwzględnia założonych indeksów. To samo zapytanie wykonane normalnie - działało bez problemu, łykało wszystkie indeksy. Wystarczyło jednak wrzucić je do podzapytania i już leciało po wszystkich rekordach.
Często nasze tabele w bazie danych zawierają pola, która mogą przyjmować dwie wartości (dwa stany): 0 i 1. Na przykład tabela z użytkownikami zawiera pole ZABLOKOWANY, które mówi czy użytkownik jest zablokowany czy nie. Jeśli jest zablokowany to przyjmuje wartość 1 a jeśli nie jest - wartość 0. Wszystko ładnie pięknie gdy są to pojedyncze pola i nie zajmują dużo miejsca. Ale co w przypadku gdy nasza tabela zawiera kilka, kilkanaście lub nawet kilkadziesiąt opcji opisu (np. tabela z ofertami, która zawiera pola OPCJA_1, OPCJA_2, OPCJA_3, .... OPCJA_N) ? Czy mamy wówczas też tworzyć kilkadziesiąt pól na każdą z opcji o możliwych wartościach 0 i 1? Nie - tutaj z pomocą przyjdzie nam system dwójkowy (binarny) oraz operacje bitowe.
Dosyć często spotykam się z pytaniem, jak napisać grupowanie wyników, czyli np. mamy produkty które należą do kategorii i jak wyświetlić wszystkie kategorie wraz z należącymi do nich produktami.
Początkujący programiści albo nie wiedzą jak to zrobić, albo robią to przy użyciu wielu zagnieżdżonych zapytań, co niezbyt dobrze wpływa na wydajność aplikacji.
Często piszemy wyszukiwarki. Jaka ich rola? Banalnie prosta - na podstawie zadanych kryteriów znaleźć żądane informacje. W tym celu tworzymy zapytanie, które zawiera nasze kryteria wyszukiwania. Zadanie wydaje się proste, jednak wielu początkujących programistów ma z tym problem. Bo o ile potrafią napisać zapytanie, które składa się ze stałej liczby warunków, o tyle z zapytaniem ze zmienną liczbą warunków, uzależnioną od wpisanych wartości w formularzu, mają już problem. W artykule tym postaram się Wam pomóc w oswojeniu tego zagadnienia.
Przeglądając różne fora widzę, iż użytkownicy często pytają o te same rzeczy. Podawać tu będę rozwiązania na większość z nich. Artykuł stopniowo będzie uzupełniany o kolejne rzeczy.
Niedawno potrzebowałem zliczyć w MySQL liczbę wystąpień danego znaku w jednym z pól tekstowych. No to biegniem do manuala a tam.... kiszka. Nie ma czegoś takiego
W php to jest substr_count() i po bólu. Trzeba było więc wymyślić własne cudo.