poniedziałek, 18 grudnia 2017

Laboratorium PHP: Wyszukiwanie polskich słów w bazie danych - mysqli, php

W internecie jest dużo tematów, w którym użytkownicy piszą i pytają, jak napisać kod, aby wyszukiwarka wyszukiwała polskie słowa np: z ę, ą,ł itd, w bazie danych. Jest kilka rozwiązań.

Szukając po forach, przeważnie można spotkać rozwiązanie, które wyszukuje polskie słowa w bazie danych i takim rozwiązaniem jest napisanie takiego zapytania:

SELECT `sth` FROM `table` WHERE LOWER(`column`)LIKE LOWER('%sth%') 
COLLATE utf8_polish_ci

Trzeba pamiętać, że trzeba za każdym razem dopisywać COLLATE utf8_polish_ci. Ja jednak rozwiązałem to inaczej, i pokazują to dwa zrzuty mojego kodu. 
Pierwszy jest połączeniem z bazą a drugi zapytanie bez COLLATE utf8_polish_ci.


Korzystając z VertrigoServ, który ma swój pakiet, to ma domyślne hasło vertrigo, dlatego nie zamazałem hasła. Gdyby połączenie dotyczyło mojego hostingu, to już tak:)
Widać, że wystarczy jedna linijka, aby wyszukiwanie z polskimi znakami działało.
Teraz jak wyżej pisałem, będzie zapytanie, które wyszukuje polskie słowa w bazie danych.


W tym kodzie, co widać na zrzucie, nie ma w zapytaniu COLLATE..... Można zadać mi pytanie, po co mam w zapytaniu imię, nazwisko, wiek, dział, skoro szukam po słowie w bazie. Ten kod, dotyczy wyszukania pracowników w bazie z danego działu! Może to być dział rachunkowość, bankowość i ewentualnie można za pomocą tego kodu, wyszukać pracowników z poszczególnych miast. Wystarczy zmienić zmienną w php i też w formularzu (nie koniecznie) oraz zmodyfikować zapytanie, aby wyszukiwało po danej miejscowości.
Dalej w kodzie widać pobranie i wyświetlenie danych. I wszystko!

wtorek, 24 października 2017

CKEditor i TinyMCE - porównanie edytorów na stronę internetową

Można spotkać wiele edytorów na stronę internetową i każdy edytor ma inne funkcje, poza tymi standardowymi jak np: pogrubienie, podkreślenie, wybór koloru czcionki, czy ułożenie tekstu z lewej, wyśrodkowane, z prawej i justowanie. Mogę tak wymieniać. 

Jednak poza dużą ilością edytorów są dwa edytory, które są bardzo popularne i na przemian stosowane. Takimi edytorami są: CKEditor i TinyMCE. Wiele pytań w internecie jest z pytaniem:

Jaki edytor wybrać? CKEditor czy TinyMCE?

Są podzielone zdania, jedni wolą ckeditor ze względu na dużą funkcjonalność i dużą ilość opcji bez żadnych rozszerzeń a drudzy wolą tinymce z powodu, że jest szybszy, łatwiej jest go skonfigurować i ma bogatszą bibliotekę rozszerzeń. Zajmijmy się samymi edytorami bez żadnych rozszerzeń! 

CKEditor wersja 4.

Testując u siebie na lokalnym komputerze, wybrałem dużą szerokość, co widać na zdjęciu. Na zdjęciu jest pokazany ckeditor wersja pełna,która ma wszystkie pluginy w paskach narzędzi. 
Jeżeli chcemy dodać zdjęcie z dysku lub z internetu, to wybieramy z paska narzędzi ikonę obrazka i pojawia się okno z dużą ilością opcji.


Już na tym etapie mamy sporo ustawień. Klikając lub wybierając przeglądaj, nie będziemy mieli opcji dodania zdjęcia, ponieważ od tego zależą dodatkowe konfiguracje a co za tym idzie, dodanie rozszerzenia dodawania zdjęć. Ja wybrałem KCFinder i jest to darmowe rozszerzenie, lecz tu w tym temacie, nie będę opisywał.  Jeżeli nie mamy rozszerzenia ładowania zdjęć a chcemy wybrać zdjęcie z dysku lub mamy i mamy taki edytor na stronie, to trzeba najpierw przenieść zdjęcia do folderu, który mamy na serwerze i dać odpowiednią ścieżkę. klikamy OK i mamy zdjęcie w edytorze. 
Warto zwrócić uwagę na opcję rozmiaru zdjęcia, którą przed umieszczeniem możemy zmienić. Jeszcze jedno, gdy mamy zdjęcie, to możemy w ustawieniach wyrównania określić położenie zdjęcia i wtedy mamy automatycznie ustalone położenie, gdzie będziemy mieli tekst.

A jak to wygląda w edytorze TinyMCE wersja 4?

Tak najnowsza wersja edytora TinyMCE prezentuje się i o wiele lepiej wygląda niż wersja 3, która jest znana np: z cms'a php-fusion. Tu również jest wersja pełna ze wszystkimi narzędziami.  Jak wygląda ładowanie zdjęć w tym edytorze? Proszę zobaczyć na poniższe zdjęcie.


Nie muszę pytać, czy jest różnica, bo to gołym okiem widać. TinyMCE ma mniej funkcji i jak w CKeditorze tak samo jest w TinyMCE, chodzi o ładowanie plików podając adres obrazka. Tylko w TinyMCE dodając obrazek, nie mamy opcji wyboru położenia obrazka względem treści. Możemy tylko rozmiar określić. Jeżeli chcemy mieć obok obrazka tekst, trzeba z paska narzędzi wybrać wyrównanie z lewej. 

Co do ułożenia ikon i funkcji w pasku narzędzi, to sami możemy wybrać jakie narzędzia będziemy mieli i można to w bardzo prosty sposób zrobić. Ale o konfiguracji edytorów w tym wspomnianym wyżej KCFinder, poświęcę osobny temat.

Odpowiadając na pytanie, jaki edytor wybrać i który będzie lepszy, to zależy wyłącznie od Ciebie. Moim zdaniem oba są dobre i każdy edytor ma swoje plus i minusy.
Sam napisałem aplikację z oba edytorami i świetnie sprawdzają się, ale gdybym musiał wybrać, to CKEditor!

środa, 23 sierpnia 2017

Laboratorium PHP: Ponowny zapis do bazy po odświeżeniu strony

Na forum o tematyce programowania w php, można znaleźć tematy użytkowników, którzy mają problem z problemem jakim jest ponowny zapis do bazy danych. 

Niby to jest banalna sprawa i każdy wie jak to rozwiązać, to nie każdy umie sobie poradzić sobie z tym problemem.  Można zrobić na kilka sposobów, ale ja przedstawię dwa sposoby. Jeden jest bardzo dobrze znany a drugi hmmm, zobaczymy:)

  1. Jeżeli mamy bazę z tabelami zapełnionymi rekordami, to najlepiej dać np: jedną kolumnę na unikatowy. I po ponownym odświeżeniu strony nie będzie takiego samego  rekordu.
  2. Drugi sposób, to stworzyć dodatkową kolumnę, gdzie będą zapisywane losowe liczby. Natomiast losowe liczby mają dodawać się do bazy z ukrytego pola w formularzu. I teraz, można ponownie ustawić jako unikatową wartość w bazie lub napisać zapytanie sql, który sprawdza, czy jest już taka losowa liczba w bazie. To dział, bo sam pisałem na lokalnym serwerze skrypt. Tylko każdy jest przyzwyczajony, do gotowców, więc nie podam tu tego skryptu, ale dałem rozwiązanie;)
 Jak będzie prośba o podanie skryptu, to podam:) A teraz sam samodzielnie napisz skrypt.

środa, 24 maja 2017

Laboratorium PHP: Jak odczytywać wyniki wyszukiwań w bazie danych?

Temat dotyczy jak napisać, zrobić, aby wyniki wyszukiwań były odczytane z bazy danych. Od razu zaznaczam, że nie będzie kodów. Dlaczego? Zakładam, że czytelnik zna php i robił podstawowe skrypty takie jak: dodawanie danych do bazy z poziomu formularza lub tworzył niejedną wyszukiwarkę w php.

To wydaje się być trudne, ale tak nie jest:) Jeżeli tworzyłeś skrypty CRUD  w php, to w zasadzie już masz gotowy skrypt! W tym momencie zastanawiasz się, jak to gotowy skrypt, przecież CRUD, dotyczy tworzenia, usuwania, modyfikacji i usuwania, ale zauważ, że tworzenie (litera C) odnosi się do tworzenia wpisu, rekordu w bazie. 
Co w takim razie jest potrzebne, aby działało zapisywanie wyników wyszukiwania w bazie?
  1. Baza danych - podstawa! I teraz zależy jaki mechanizm składowania danych wybierzesz. Jak InnoDB, to zapomnij o wyszukiwaniu pełnotekstowym! Do tego należy wybrać MyISAM!
  2. Formularz wyszukiwania - tu wpisujesz hasło, słowo kluczowe,
  3. Twój skrypt napisany w php, który odpowiada za wyszukiwanie i dodawanie rekordu. Czy użyjesz mysql_connect, new mysqli lub PDO, to wyłącznie Twoja sprawa!
Zastanawiasz się, dlaczego na czerwono pogrubionym tekstem jest mysql_connect? Ponieważ jest to przestarzała metoda i nie powinno jej się używać. Nawet new mysqli powoli odchodzi, ale jest dużo lepszym rozwiązaniem niż mysql_connect.

Jak znajdę czas, może napiszę skrypt i wrzucę w ten temat. Jednak myślę, że Ty czytelniku, dasz sobie radę:)

wtorek, 25 kwietnia 2017

Other IT: Photoshop vs.Gimp - jeszcze raz o programach graficznych

W poprzednim temacie napisałem o programach graficznych oraz pisałem, czy warto używać do wszystkiego  photoshopa. 

Jeżeli jesteś programistą, który pisze kod w php, asp.net, js, i w podobnych językach webowych oraz używając html/css a nie jesteś grafikiem komputerowym, to zadaj sobie pytanie, czy potrzebny jest Ci photoshop?

Do jakich celów jest przeznaczony photoshop? Między innymi do takich celów, jak:
  • tworzenie szablonów/template na cms-y (wspomniałem o tym w poprzednim temacie),
  • retusz zdjęć i obróbka,
  • tworzenie postaci do gier komputerowych (nie do końca, choć tu mogę mylić się, ponieważ, mogą też być tworzone w programach 3D),
Może być więcej zastosowań, ale jest jeszcze jedno.....

Nie tylko graficy komputerowi 

Photoshop nie jest używany tylko przez grafików, choć graficy dominują, ale program photoshop używają też  fotografowie, którzy potrzebują profesjonalnego programu do obróbki zdjęć. 
Nie wiem jak w gimpie, ale photoshop przewyższa gimpa w tej kategorii.

Ułatwiając Ci wybór nad dwoma programami, to zadaj sobie pytanie, czy będziesz korzystać z photoshopa używając to co jest w powyższych punktach. Jak nie, i będziesz tworzył/a bannery, loga, drobne ikony o czym wspomniałem też w poprzednim temacie, to do tych celów wystarczy GIMP!

Co wybierzesz, to już zależy wyłącznie od Ciebie i nie będzie to złym wyborem, ale czy warto kupować photoshop,  aby tworzyć tylko bannery, znaki, loga? Moim zdaniem, nie. 

niedziela, 12 marca 2017

Other IT - Programy graficzne do tworzenia stron internetowych.

I nadszedł czas, aby napisać o czymś innym, niż programowanie, kody, cms w tym wtyczki itd. Ten temat, będzie poświęcony programom graficznym oraz zadajmy sobie pytanie, czy koniecznie do tworzenia stron musi być photoshop? 

Zapewne każdy widział jak działa photoshop i jego możliwości. Gimp również jest dobry i stanowi alternatywę dla komercyjnego i płatnego programu photoshop. 
Wracając do pytania, które jest powyżej i rozwijając dalej pytanie.....

Jeżeli photoshop, to co konkretnie chcemy tworzyć na stronę, którą tworzymy. Motyw graficzny zwany inaczej szablonem? Ok, tu mogę zgodzić się. A po za tym?
Nie jestem grafikiem i nie używam photoshopa do tego celu. Jednak, jeżeli potrzebujemy program graficzny, aby tworzyć loga, bannery, małe elementy graficzne na stronę np: strzałki, gwiazdki itd., to nie musimy specjalnie używać do tego celu photoshopa! Wystarczy sam gimp. 

Kolejna sprawa, to jakość obrazka. Jeżeli zamierzamy mieć obraz w różnych rozdzielczościach, to niestety, photoshop odpada i to na starcie! Do tego typu  obrazków, trzeba wykorzystać grafikę wektorową i takim programem może być Corel Draw, a alternatywą dla tego programu, to Inskape. 
W Corel Draw jak i w Inscape, również można tworzyć bannery, loga na stronę, czy inne drobne grafiki i nie musimy specjalnie kupować drogiego programu do takich celów.

Pytanie kolejne, tworzysz dla siebie (dla swojej galerii), czy dla kogoś? I tu już jest kluczowa sprawa. Jak w photoshopie i w gimpie, możemy tworzyć projekty komercyjnie. Jednak jest pewne ale!, Gimp, nie ma tyle funkcji co photoshop i w 100% nie zastąpi Gimpa. Zależy jeszcze od projektu. 
Czy w gimpie, możemy szablon strony zaprojektować? Można. 

Tak naprawdę, to zależy od Ciebie, czego oczekujesz od swojego projektu, aby zrobić to w programie. Jeżeli masz zamiar kupić photoshop do tworzenia bannerów, log na stronę, elementów graficznych, to tylko wydasz nie potrzebnie kasę! Chyba, że jesteś grafikiem i nie tworzysz tylko to co wcześniej napisałem, ale tworzysz zarobkowo szablony na strony, plakaty, wizytówki itd.
Co do plakatów, to tylko grafika wektorowa! I ponownie trzeba zadać pytanie jak w przypadku photoshopa i gimpa. Do jakich celów? Jak do takich o czym wspomniałem przed chwilą np: plakaty, to CorelDraw nadaję się w 100%. Inskape, nie wiem, ale zakładam, że tak.

Zatem do Ciebie należy ostateczna decyzja, jaki program wybierzesz i do jakich celów.

wtorek, 7 marca 2017

Laboratorium Wordpress: Opcja justowania tekstu zniknęła po aktualizacji do wersji 4.7

To będzie krótki temat, ale przydatny (tak sądzę). Na temat zniknięcia justowania i też podkreślenia w edytorze powstało wiele artykułów. Ja napiszę inaczej lub tak samo:)
Zadajmy sobie pytanie, co mamy w nowej wersji Wordpress 4.7? Mowa o edytor tekstu TinyMCE.
Mamy wszystko poza przyciskami justowania i podkreślenia. 
Przyciski znikły, ale jeżeli ktoś zna html, może ręcznie justować, tylko po co?
Jednym rozwiązaniem jest zastosowanie wtyczki do edytora tekstu.
Ja używam wtyczki Re-add text underline and justify, i jest dostępna tutaj:
https://pl.wordpress.org/plugins/re-add-underline-justify/. Jest też inna wtyczka o nazwie TinyMCE advanced i znajduje się na tej samej stronie co poprzednia, i jest do pobrania z tego  adresu: https://pl.wordpress.org/plugins/tinymce-advanced/

Wystarczy pobrać, zainstalować  i gotowe! Mamy justowanie;)

środa, 4 stycznia 2017

Tworzenie stron www: Nie twórz stron opartych na tabelach. Twórz na div-ach.

Czas napisać o tym, czy warto jeszcze tworzyć strony oparte na tabelach, czy tylko na blokach div. Kto tworzył od zera strony (nie używając żadnych kreatorów, generatorów stron), wie o czym będę pisał. Jeżeli jest Ci dobrze znana tematyka, to nie czytaj, ponieważ będzie to dla ciebie strata czasu. 

Czasy w których przeważnie wykorzystywało się tabele do tworzenia stron już minęły lub prawie minęły. Jednak nie które osoby nadal tworzą strony używając tabel, bo jest proste! I tu jest błąd!
Teraz tabele wykorzystuje się, aby nie umieszczać tekstów, menu, nagłówków w postaci zdjęć czy obrazków. Teraz tabele wykorzystuje się do danych np: pobieranie danych z bazy, choć i można też w blokach div takie dane pokazywać. 
Kto przyzwyczaił się do tworzenia stron na tabelach, może powiedzieć, skoro działa i jest dobrze, to po co mam zmieniać zasady tworzenia stron? 
Odpowiedź jest prosta: RWD (Responsive Web Design), bootstrap, są używane w większości stron internetowych. Robiąc stronę na tabeli, zapomnij że RWD Ci zadziała, no chyba, że tak style opracujesz, aby działały na każdym urządzeniu, ale będzie Ci trudno.
Dlatego do stron z RWD najlepiej używać bloków div.
To samo z frameworkiem bootstrap. Podpinasz pliki css i tworzysz stronę, ale jak stworzysz na tabelach i jeszcze będziesz chciał pobrać dane z bazy nadając inny styl, to nie zdziw się, że otrzymasz co innego, niż to co byś chciał uzyskać.

Nawet przestarzały CMS PHP-FUSION jest oparty na tabelach i czasem jest trudno zmodyfikować wygląd.

Dlatego stosuj divy a tabele wykorzystuj na dane z bazy danych.