![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
Witam. Zacząłem pisać sobie klasę do obsługi mysql'a i napotkałem problem logiczny.
Takto działa fajnie, nie mam zastrzeżeń, ale nie pomyślałem że przy filtrowaniu(?, chodzi o WHERE) wyników zamiast AND może być też OR. Kompletnie nie mam pomysłu jak zrobić wybór tego aby definiować czy ma być AND czy OR. Jeszcze jest zagadka bo cała ta formułka może wyglądać następująco Kod ...WHERE (`kol1` = '1' OR `kol1` = '2') AND `kol2` = 'abc' Proszę o jakieś naprowadzenie na rozwiązanie owego problemu. Z góry dzięĸi. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Niepotrzebnie wynajdujesz koło od nowa.
Jest wiele takich generatorów SQLa, jak choćby DQL z Doctrine. Poza tym używaj zapytań podpinanych (PDO, bind). |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
Ale jedna koło kołu nie równe. Nie lubie korzystać ze skryptów, których autorem nie jest moja osoba
![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Skoro jest to klasa to rozbij na mniejsze metody aby było select()->where('id', $id, 'OR')->order('id desc')->limit($offset, $limit)->fetchAll();
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
No dobra. Przemyśle jak to ostatecznie rozwiązać i podziele się efektem mojego rozwiązania
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Nie lubie korzystać ze skryptów, których autorem nie jest moja osoba To teraz zobaczmy jak bardzo nie lubisz korzystać z cudzej pracy:1. Standardowy zestaw funkcji i klas w PHP nie jest Twojego autorstwa. Wypadałoby przepisać te wszystkie strlen(), PDO, fopen() - swoją drogą: zrobiłbyś duży użytek dla społ. prog. PHP. 2. Lubisz pisać w jakimś śmieciowym języku napisanym byle jak, działającym byle jak? Olej PHP - napisz swój własny język na potrzeby stron www. 3. Serwer HTTP. Apache (czy jakiś inny) to w końcu nie Twoja robota. W sumie to język który stworzysz w pkt. 1-szym może posłużyć do napisania samego serwera. 4. Hmmm... ale ten język do napisania narzędzi z pkt 1 i 2 też trzeba stworzyć. Stwórz swój własny kompilator (do kodu maszynowego). 5. Czekaj, czekaj... ale ten kod maszynowy też będzie przecież wykonywany przez jakiś procesor, którego autorem nie jesteś - Intel, AMD do lamusa! 6. I ma to działać na prąd elektryczny nie Twojego autorstwa, o co to nie. .... 423423423. Stwórz swój własny wszechświat! W skrócie: naucz wykorzystywać się istniejące rozwiązania, a swoje twórz dopiero w momencie gdy na istniejące Cię nie stać bądź nie spełniają Twoich wymagań. Ten post edytował Crozin 9.11.2010, 20:17:55 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
źle mnie zrozumiałeś kolego. Chodzi mi o to, że jak ja coś zrobię czyli w tym przypadku napisze klase do obsługi mysql i będę chciał w niej coś zmienić, ulepszyć to będzie mi łatwiej niż w cudzych "wypocinach". Skoro Ty lubisz nie swoje skrypty to po co w ogóle wziąłeś się za nauke php? Chciałeś mieć stronę? Trzeba było sobie ściągnąć/kupić jakiegoś CMSa i z niego korzystać. Ale nie! Wolałeś zrobić samemu.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Chodzi mi o to, że jak ja coś zrobię czyli w tym przypadku napisze klase do obsługi mysql i będę chciał w niej coś zmienić, ulepszyć to będzie mi łatwiej niż w cudzych "wypocinach". Bzdura.1. Zaoszczędzony czas możesz przeznaczyć na przestudiowanie kodu i wyjście z kolegami na piwo. 2. Masz beznadziejny styl pisania, w dodatku (chociaż ciężko określić to po takim skrawku kodu) piszesz "niby obiektowo", co jest chyba najgorszym z możliwych przypadków (no może takie "niby aspektowe" byłoby gorsze) Cytat Skoro Ty lubisz nie swoje skrypty to po co w ogóle wziąłeś się za nauke php? PHP to tylko i wyłącznie jedno z wielu narzędzi do rozwiązywania problemów.Cytat Trzeba było sobie ściągnąć/kupić jakiegoś CMSa i z niego korzystać. Ale nie! Wolałeś zrobić samemu. Cytat (...) a swoje twórz dopiero w momencie gdy na istniejące Cię nie stać bądź nie spełniają Twoich wymagań.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
Dobra, nie zamierzam się z kolegą kłócić. Powiedziałbym coś jeszcze ale sobie daruje...
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Źródła takiego Doctrine czy innych gotowców są starannie sprawdzane przez wielu ludzi, i masz 100% pewność (porównując do twojego kodu), że będą bezpieczniejsze, szybsze (bo przemyślane) i do tego łatwiejsze w modyfikacji.
Nauczysz się korzystać z gotowych rozwiązań gdy zrozumiesz jak cenny jest stracony na wymyślanie własnych czas. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 05:01 |