Miesięczne archiwum: Luty 2011

Zapytanie insert z selectem

Zastanawiałe(a)ś się kiedyś czy można wstawić rekordy do bazy danych tak aby w określonych kolumnach dynamicznie załadowały się dane z innej tabeli ? Podam Ci przykład – masz tabelę obecności np. pracowników na szkoleniu. Pracownicy są podzieleni na grupy. W momencie uruchomienia szkolenia chcesz aby do bazy wpisały się domyślnie rekordy z obecnościami wszystkich członków danej grupy. Rzecz jest banalna – pobieramy wszystkich członków grupy, po stronie PHP robimy pętlę, w której do zmiennej np. $query dopisujemy kolejne instrukcje insert i po pętli wykonujemy zapytanie. Sposób oczywiście zadziała, ale można sobie poradzić z operacją zupełnie inaczej wykorzystując jedynie SQLa. Stworzymy więc zapytanie insert zawierające zapytanie select dzięki czemu pewne dane będą pobierane bezpośrednio z bazy. Czytaj dalej

Blokada listowania katalogu

Niektóre konta hostingowe mają domyślnie włączoną opcję blokowania listowania zawartości katalogów czyli dla wyjaśnienia powiem, że chodzi o nie wyświetlanie zawartości katalogu w momencie odwołania do niego np. wpisując w przeglądarce URL typu naszadomena.pl/jakisfolder. Powodów, dla których chcielibyśmy nie dopuścić do wyświetlenia zawartości danego katalogu może być naprawdę wiele, ale na nich się nie skupiajmy, a zajmijmy sposobem na założenie takiej blokady. Czytaj dalej

IF w zapytaniu SQL

Instrukcja warunkowa w zapytaniu do bazy to bardzo przydatna rzecz, jednak w różnego rodzaju poradnikach, kursach nauki SQLa często nie wspomina się o takich możliwościach, a skupia się na podstawach czyli pobraniu rekordów, wstawieniu nowych, aktualizacji czy kasowaniu istniejących i różnego rodzaju złączeniach. Można również rzec, że po co komplikować zapytanie skoro możemy pewne operacje wykonać programistyczne w pętli już po odczycie rekordów ? Czytaj dalej

Blokada dostępu do określonego typu plików

Konfiguracyjny plik serwera Apache czyli .htaccess daje WebDeveloper’om wiele ciekawych możliwości. Bardzo przydatną rzeczą jest blokada dostępu do określonego typu pliku. Przykładowo nasza aplikacja tworzy sobie cache informacji zapisując zserializowane dane w plikach z rozszerzeniem *.cache. Generalnie na publicznych stronach WWW nikt takiego cache’u nie będzie chronił, bo i po co, ale załóżmy, że mamy jakiś zamknięty system, w którym pewne dane sobie cache-ujemy i nie może dojść do sytuacji, że po wpisaniu w przeglądarkę URLa do jednego z takich plików ktoś odczyta zapisane w nim dane. Czytaj dalej

Dodawanie, odejmowanie dni i godzin w PHP

W różnego rodzaju stronach internetowych, aplikacjach webowych czy prostych skryptach są takie momenty gdzie trzeba trochę pobawić się z datą lub czasem czyli np. sprawdzić w odniesieniu dodanej daty/czasu jaka będzie data za 13 dni lub jaka będzie godzina za 45 minut. W przypadku dat dobrze by było aby obliczenia uwzględniały przełomy miesięcy, lata przestępne, a w przypadku godzin zmianę dnia. Moglibyśmy takie funkcje oczywiście napisać, ale po co wymyślać koło na nowo :) Czytaj dalej