Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [class] dbtxt
Forum PHP.pl > Inne > Oceny
widmogrod
Witam, pragne wam zaprezentować moją klase 'dbtxt' - tekstowa baza danych

INTRO:
Jako że jestem (już niedługo) użytkownikiem darmowych hostingów, które nie oferują dostępu do MySQL'a lub innej bazy danych postanowiłem takową napisać. Jako iż obecnie bardziej popularną wersją php na darmowych hostingah jest 4 to ją wykorzystałem do napisania mojej bazy.

Jest to jak, wyżej napisałem, baza działająca na plikach testowych.
Oto lista zapytań jakie obsługuje

oczywiście przykładowe winksmiley.jpg

  1. DELETE FROM niusy WHERE id < 2
  2. DELETE FROM niusy WHERE id > 2
  3. DELETE FROM niusy WHERE id = 2


  1. SELECT ALL FROM niusy SELECT ALL FROM niusy ORDER BY autor DESC SELECT ALL FROM niusy ORDER BY autor DESC LIMIT 12
  2. SELECT ALL FROM niusy WHERE autor = "dom" ORDER BY autor DESC LIMIT 1, 4
  3. SELECT ALL FROM niusy WHERE id < 16 ORDER BY autor ASC SELECT ALL FROM niusy WHERE id < 16 ORDER BY autor ASC LIMIT 1, 1

all - jest zawsze, narazie nie można wybierać kolumn do wyciągnięcia z tabeli
  1. UPDATE niusy SET temat=nowy temat, tresc= tu jakaś NOWA tresc WHERE id =2
  2.  
  3. INSERT INTO niusy VALUES ("","temat", "treść, jakaś krótka treść", "widmogrod")


a tutaj plik bazy z przykładami
http://samsung.ovh.org/dbtxt.rar

Co sądzicie o klasie, o bazie questionmark.gif
nospor
Idea takiej klasy bardzo mi sie podoba. juz na starcie za to masz plusa smile.gif

ale ty chyba nie pisales jej przy wlączonym raportowaniu noticow. Gdy wykonuje Twoj pierwszy przyklad z paczki, wywala mi przy bodajze przy insercie:
Cytat
Notice: Undefined offset: 4 in C:\Inetpub\wwwroot\apache\test\baza\dbtxt.class.php on line 404

Notice: Undefined offset: 5 in C:\Inetpub\wwwroot\apache\test\baza\dbtxt.class.php on line 404


olaboga... wlasnie wykonalem Twoj drugi przykladwoy skrypt. Cala strona noticow... Proponuje ci poprawic ten kod o zniweczenie tych noticów. tylko blagam, nie rob tego poprzez dodanie malpy @
ale pomijajac juz te noticy:
Funkja query() zwraca tablice rekordów dla selecta. OK. ale jest tez funkcja fetch_assoc(), ktorej parametrem jest ta zwrocona tablica i ona zdejmuje z niej pokolei elementy. osobiscie uwazam to juz za zbedne, bo to zadna funkcjonalnosc ani optymalizacja, skoro ja do tej funckji i tak musze zapodac cala tablice. rownie dobrze moge se tym foreachem przeleciec.

- update. robie update rekordu o ID = 2. ale w tabeli nie mam takiego rekordu. no i niestry twoj przykladowy skrypt nr 3 pisze mimo wszystko ze update sie powiodl. no nie dokoncu, bo mi przeciez nic nie updateowalo smile.gif Brakuje funkcji, ktora by zwracala ilosc przetworzonych rekordow. Podobnie jest zapewne z insertem i delete. taki odpowiednik mysql_affected_rows.

I jeszcze taka popierdulka. czemu nadajesz metodom w klasie przedrostek dbtxt_. Jest on moim zdaniem zbedny i tylko nie potrzebnie wydluza nazwe metody. wkoncu są to metody w klasie i wiadomo do jakiej klasy naleza.

aa, no i przydalby sie jakis numer i komunikat "skladniowego" bledu. bo jesli zamiast przy update wpisac SET wpisze SETs, to oczywiscie zwroci false, ale nie zwroci dlaczego. powinno byc: "nie znane slowo kluczowe SETs" czy jakos podobnie.

Podsumowujac:
Jak pisalem klasa sama w sobie mi sie podoba, ale ma jeszcze pare niedociągniec, ktore mam nadzieje ze poprawisz smile.gif powodzenia
widmogrod
Cytat
Idea takiej klasy bardzo mi sie podoba. juz na starcie za to masz plusa smile.gif


Już myślałem ze będzie pytanie: A po co to ? a tu nie biggrin.gif, bardzie się cieszę ze mój czas nie poszedł na marne i pomysł komuś spodobałwinksmiley.jpg

Cytat
ale ty chyba nie pisales jej przy wlączonym raportowaniu noticow. Gdy wykonuje Twoj pierwszy przyklad z paczki, wywala mi przy bodajze przy insercie:
olaboga... wlasnie wykonalem Twoj drugi przykladwoy skrypt. Cala strona noticow... Proponuje ci poprawic ten kod o zniweczenie tych noticów. tylko blagam, nie rob tego poprzez dodanie malpy @
ale pomijajac juz te noticy


Już poprawione noticy winksmiley.jpg

Cytat
Funkja query() zwraca tablice rekordów dla selecta. OK. ale jest tez funkcja fetch_assoc(), ktorej parametrem jest ta zwrocona tablica i ona zdejmuje z niej pokolei elementy. osobiscie uwazam to juz za zbedne, bo to zadna funkcjonalnosc ani optymalizacja, skoro ja do tej funckji i tak musze zapodac cala tablice. rownie dobrze moge se tym foreachem przeleciec.


Wiem na początku było foreach ale ... chciałem to jak najbardziej upodobnić do zapytań MySQL ... więc postanowiłem dodać fetch_assoc() ... ale narazie działa jak działa ... mi też się nie podoba takie rozwiązanie. Postaram się to poprawić, w następnej wersji.

Cytat
- update. robie update rekordu o ID = 2. ale w tabeli nie mam takiego rekordu. no i niestry twoj przykladowy skrypt nr 3 pisze mimo wszystko ze update sie powiodl. no nie dokoncu, bo mi przeciez nic nie updateowalo smile.gif


Poprawione

Cytat
Brakuje funkcji, ktora by zwracala ilosc przetworzonych rekordow. Podobnie jest zapewne z insertem i delete. taki odpowiednik mysql_affected_rows.


Klasa jest w fazie rozwojowej ... ale napewno się coś takiego pojawi

Cytat
I jeszcze taka popierdulka. czemu nadajesz metodom w klasie przedrostek dbtxt_. Jest on moim zdaniem zbedny i tylko nie potrzebnie wydluza nazwe metody. wkoncu są to metody w klasie i wiadomo do jakiej klasy naleza.


Wiem, ale jak już wyżej napisałem ... wzorowałęm się na zapytaniach MySQL :]

Cytat
aa, no i przydalby sie jakis numer i komunikat "skladniowego" bledu. bo jesli zamiast przy update wpisac SET wpisze SETs, to oczywiscie zwroci false, ale nie zwroci dlaczego. powinno byc: "nie znane slowo kluczowe SETs" czy jakos podobnie.


Tu jest mały problem, narazie mogę dodać do skryptu by zwracał błąd: Zapytanie jest niepoprawne. nie mogę, narazie, sprecyzować gdzie jest błąd w zapytaniu

Cytat
Podsumowujac:
Jak pisalem klasa sama w sobie mi sie podoba, ale ma jeszcze pare niedociągniec, ktore mam nadzieje ze poprawisz smile.gif powodzenia


Dzieki biggrin.gif, klase będę rozwijał :],
a jakieś sugestje co do funkcji jakie w niej mogły by się znaleść questionmark.gif
pawel_k
ja bym pomyslal o trzymaniu danych w plikach XML, o wiele wieksza funkcjonalnosc by byla smile.gif
hwao
Cytat(pawel_k @ 6.06.2006, 19:02 ) *
ja bym pomyslal o trzymaniu danych w plikach XML, o wiele wieksza funkcjonalnosc by byla smile.gif

Ale tez o wiele wolniejsze parsowanie danych


Qrde, przez ta rozmowe wpadl mi do glowy szalony pomysl.... tongue.gif Rozpisze go na kartce i sproboje zrealizowac!: )
NuLL
http://txtdb.strefaphp.net/ winksmiley.jpg
widmogrod
@NuLL - jest mała różnica smile.gif u mnie dane nie są przechowywane w zserializowanej tablicy smile.gif szybciej się uzyskuje konkretne dane, no i plik z zawartością tabeli zajmuje mniej smile.gif
a po drugie ... rodzaj wykonywania zapytań jest bardziej przyjazny

a co tam po trzecie też będzie biggrin.gif - chciałem zrobić to po swojemu winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.