FPP BOARD (http://board.fpp.pl//index.php)
- (http://board.fpp.pl//forumdisplay.php?forumid=77)
-- (http://board.fpp.pl//showthread.php?threadid=14164)
PHP + MySQL (w pytaniach :P)
Wiec tak robie sobie jeden maly projekcik
tzn w sumie to go zaczynam, i juz na poczatku mam maly "problem" z zaprojektowaniem bazy w MySQL'u
Wiec tak, baza mialaby wygladac nastepujaco:
ID | nick | serwis_1 | serwis_2 | serwis_3 | serwis_4
-------------------------------------------------------------
1. | shooler | wartosc1 | wartosc2 | wartosc3 | wartosc4
2. | shooler2 | wartosc11 | wartosc12 | wartosc13 | wartosc14
itp
Problem w tym, ze wartosci to tez tablice, 1 wymiarowe.
I teraz pytanie, jak to zapisac w MySQL'u? Nigdzie nie moge sie doczytac czy da sie tworzyc tam tablice troojwymiarowe? Czy poprostu kazac mu zapisac do komorki $zmienna ktora jest tablica?
Czy moze lepiej zapisywac to w formie np 2:3:4:5:6 i pozniej rozdzielic wartosci przez "explode"?
Ktos ma pomysl jak bedzie najbardziej pr0?
__________________
Mo�esz:
a) easy pole servis_x (chodzi�o o service? ) na jakiego� d�ugiego texta, odziela� dane jakim� znakiem specjalnym i przy zczytywaniu robi� explode przez ten znak (patrz -> www.php.net).
b) pr0 darowa� sobie pola servis_x, a zamiast nich zrobi� osobne tabele wygl�daj�ce tak:
ID(auto, index) | UserID | Warto�c
-------------------------------------------------
1 | 1 | wartosc11
2 | 1 | wartosc12
3 | 2 | wartosc21
...
Przy odczytywaniu user'a robisz zapytanie dla ka�dego servis'a z WHERE UserID = 1. Je�li dla ka�dego servis'u chcesz zrobi� po tyle samo danych, to mo�esz wszystkie wpakowa� w jedn� tabele.
Jakby� lookno� na baz� jakiegokolwiek forum, to masz tam tabel� kategorii, tabel� topic�w w kt�rych podane jest id kategorii do kt�rej s� przypisane i tabel� post�w w kt�rych jest podane id topic'u w kt�rym si� zawieraj�. Tak to ju� jest, �e bazy danych s� szybkie, ale za to s� bardzo "sztywne".
BTW. To s� imo bardzo elementarne rzeczy .
__________________
http://wow.allakhazam.com/profile.html?310690
Po ilu critach ty si� u�miechniesz?
Frozen do expansion packa.
quote:
Napisane oryginalnie przez nea*1337
BTW. To s� imo bardzo elementarne rzeczy.
__________________
Rozrysuj sobie porzadnie tabele i relacje miedzy nimi, zeby nie robic na pale...
Zalezy od wielkosci, do malego projekciki najlepsze sa najprostsze metody i tyle.
__________________
Nie wszyscy pana w dupe kopn�, s� ludzie bez n�g...
jesli w tabele ktora pokazales w pierwszym poscie masz zamiar wpakowac 10 czy 15 rekordow to skorzystaj z rady w punkcie a) w drugim poscie, natomiast jesli ta tabela ma miec duzo duzo wiecej rekordow pobaw sie w relacje tak jak opisano w punkcie b) drugiego posta
simple...
quote:
Napisane oryginalnie przez nea*1337
b) pr0 darowa� sobie pola servis_x, a zamiast nich zrobi� osobne tabele wygl�daj�ce tak:
ID(auto, index) | UserID | Warto�c
-------------------------------------------------
1 | 1 | wartosc11
2 | 1 | wartosc12
3 | 2 | wartosc21
...
Przy odczytywaniu user'a robisz zapytanie dla ka�dego servis'a z WHERE UserID = 1.
__________________
sort the flock (then, warn the "goats" & kill the "sheep");
kill them, dump qualms, shift moralities,
values aside, each one; die sheep! die to reverse the system
you accept (reject, respect);
quote:
Napisane oryginalnie przez weirdo
nie lepiej u�y� join�w tabel?
__________________
http://wow.allakhazam.com/profile.html?310690
Po ilu critach ty si� u�miechniesz?
Frozen do expansion packa.
weirdo uczy sie php?
__________________
Nie wszyscy pana w dupe kopn�, s� ludzie bez n�g...
ano ucz� si�. beznadziejny j�zyk i jeszcze beznadziejniejszy parser.
- explode/split: totalny debilizm. w perlu split() zwraca array i ju� od usera zale�y, czy zrobi ($foo, undef, $foo2), czy @foo, czy te� mo�e wr�cz ($foo, @foo).
- du�o funkcji pisane jakby przez kilka os�b bez kontaktu pomi�dzy nimi -- np. te od enkodowania do htmla. tak, jakby nie mo�na by�o zrobi� jednej funkcji do tego, ale takiej, kt�ra dzia�a�aby *dobrze*.
- nie mog� osadza� w "" $FOO['bar'] dajmy na to. dlaczego? w perlu dzia�a! ;->
- funkcja "foo"; dzia�a, za to funkcja $foo; ju� nie. bezsens.
- brak �rednika przy ko�cu sub�w (functions i np. for()) - skoro przy ?> domy�la si� o tym �redniku, to dlaczego nie przy {}?
last, but not least:
- vim nie koloruje mi niedomkni�tych {}(). na stos z php! ;->
robi� sobie w�asny kawa�ek pod�ogi, na razie zrobi�em blogging engine, potem jeszcze planuj� zrobi� mo�liwo�� wyklikiwania artyku��w i komentowania ich. tyle, �e jak zwykle si� po�pieszy�em i nie przemy�la�em/nie rozbi�em wystarczaj�co na procedury. do dupy z tym programowaniem
w og�le to jest gdzie� jaki� dobry opis, jak zrobi� logowanie si� na sesjach, a nie na cookies? bo ostatnio wszyscy o tym tr�bi�, a tylko ja nie umiem
zapomnia�em doda� -- to wszystko jest naprawd� dziecinnie proste i maj�c przyzwoit� wiedz� o algorytmach mo�na si� w dos�ownie par� dni nauczy� i php i mysqla. nareszcie zrozumia�em o co chodzi�o znajomemu, kt�ry pisa� o `szczeniakach z php pracuj�cych za 2 z� za godzin�'
__________________
sort the flock (then, warn the "goats" & kill the "sheep");
kill them, dump qualms, shift moralities,
values aside, each one; die sheep! die to reverse the system
you accept (reject, respect);
I potem sie ich kody sypia ;>
Trzeba jeszcze umiec odpowiednio planowac skrypty, bo klikac to prawie kazdy potrafi
__________________
Nie wszyscy pana w dupe kopn�, s� ludzie bez n�g...
LET THE FLAME BEGIN!
quote:
- explode/split: totalny debilizm. w perlu split() zwraca array i ju� od usera zale�y, czy zrobi ($foo, undef, $foo2), czy @foo, czy te� mo�e wr�cz ($foo, @foo).
quote:
- du�o funkcji pisane jakby przez kilka os�b bez kontaktu pomi�dzy nimi -- np. te od enkodowania do htmla. tak, jakby nie mo�na by�o zrobi� jednej funkcji do tego, ale takiej, kt�ra dzia�a�aby *dobrze*.
quote:
- nie mog� osadza� w "" $FOO['bar'] dajmy na to. dlaczego? w perlu dzia�a! ;->
quote:
- funkcja "foo"; dzia�a, za to funkcja $foo; ju� nie. bezsens.
quote:
- brak �rednika przy ko�cu sub�w (functions i np. for()) - skoro przy ?> domy�la si� o tym �redniku, to dlaczego nie przy {}?
quote:
robi� sobie w�asny kawa�ek pod�ogi, na razie zrobi�em blogging engine, potem jeszcze planuj� zrobi� mo�liwo�� wyklikiwania artyku��w i komentowania ich. tyle, �e jak zwykle si� po�pieszy�em i nie przemy�la�em/nie rozbi�em wystarczaj�co na procedury. do dupy z tym programowaniem
quote:
w og�le to jest gdzie� jaki� dobry opis, jak zrobi� logowanie si� na sesjach, a nie na cookies? bo ostatnio wszyscy o tym tr�bi�, a tylko ja nie umiem
quote:
zapomnia�em doda� -- to wszystko jest naprawd� dziecinnie proste i maj�c przyzwoit� wiedz� o algorytmach mo�na si� w dos�ownie par� dni nauczy� i php i mysqla. nareszcie zrozumia�em o co chodzi�o znajomemu, kt�ry pisa� o `szczeniakach z php pracuj�cych za 2 z� za godzin�'
__________________
http://wow.allakhazam.com/profile.html?310690
Po ilu critach ty si� u�miechniesz?
Frozen do expansion packa.
> �e jak?
w perlu:
chc� explode, robi� my ($foo, $bar, $baz) = split(
chc� split, robi� my @foo = split(
chc� jeszcze co� innego, robi� my ($foo, undef, @bar) = split(
> htmlspecialchars() dzia�a dobrze.
dupa a nie dobrze. ja chcia�bym co� zamieniaj�cego na & wszystkie binarne krzaki (bo na choler� mi one?), poza tymi zdefiniowanymi w moim kodowaniu.
> W "" nie powinno si� wog�le osadza� zmiennych, learn the fuken "".$var."".
robi� tak, w�a�ciwie to robi�em tak jeszcze w perlu. tylko po choler�, skoro osadza� wygodniej? ;-P
>> - funkcja "foo"; dzia�a, za to funkcja $foo; ju� nie. bezsens.
> $foo() lub $klasa -> $foo() dzia�a bez problemu.
nie, nie to mia�em na my�li;
foo "bar"; # dzia�a
foo $bar; # nie dzia�a, wywala b��d
> C++ anyone?
quote:
�When the Patriarch Ritchie invented C, he condemned programmers to a thousand hells of buffer overruns, heap corruption, and stale-pointer bugs.�
__________________
sort the flock (then, warn the "goats" & kill the "sheep");
kill them, dump qualms, shift moralities,
values aside, each one; die sheep! die to reverse the system
you accept (reject, respect);
quote:
w perlu:
chc� explode, robi� my ($foo, $bar, $baz) = split(
chc� split, robi� my @foo = split(
chc� jeszcze co� innego, robi� my ($foo, undef, @bar) = split(
quote:
> htmlspecialchars() dzia�a dobrze.
dupa a nie dobrze. ja chcia�bym co� zamieniaj�cego na & wszystkie binarne krzaki (bo na choler� mi one?), poza tymi zdefiniowanymi w moim kodowaniu.
quote:
> W "" nie powinno si� wog�le osadza� zmiennych, learn the fuken "".$var."".
robi� tak, w�a�ciwie to robi�em tak jeszcze w perlu. tylko po choler�, skoro osadza� wygodniej? ;-P
quote:
nie, nie to mia�em na my�li;
foo "bar"; # dzia�a
foo $bar; # nie dzia�a, wywala b��d
quote:
na choler� ci obiekty? ja zawsze uznawa�em je za bloat; to samo mo�esz zrobi� zwyk�ymi funkcjami, bez narzutu wydajno�ciowego nadawanego przez obiekty.
quote:
swoj� drog�, po choler� ci w szperaczu arraye w stylu this[]? kolejny przyk�ad bloatu w�r�d programist�w j�zyk�w wysokiego poziomu... rozumiem, gdyby� jeszcze robi� t� zmienn� global, ale skoro nie robisz, to na co ci array, skoro mo�esz to zrobi� na zwyk�ych varach?
__________________
http://wow.allakhazam.com/profile.html?310690
Po ilu critach ty si� u�miechniesz?
Frozen do expansion packa.
> To teraz nie rozumiem o co ci chodzi .
print "foo"; # dzia�a
var_dump $foo # nie dzia�a, parser si� wypierdala
dopiero var_dump($foo); dzia�a
w perlu to mog� nawet print values %foo, nic nie stoi na przeszkodzie (print i values to funkcje, natomiast %foo to tablica asocjacyjna)
> + Za programowanie w (poprawnym) OOP si� wi�cej p�aci .
to ca�kiem trafny argument ;-P
> - Umo�liwia �atwe u�ywanie tego samego kodu w r�nych projektach.
w zwi�zku z powy�szym, nie zrzekasz si� praw do swojego `dzie�a'?
__________________
sort the flock (then, warn the "goats" & kill the "sheep");
kill them, dump qualms, shift moralities,
values aside, each one; die sheep! die to reverse the system
you accept (reject, respect);
quote:
print "foo"; # dzia�a
var_dump $foo # nie dzia�a, parser si� wypierdala
dopiero var_dump($foo); dzia�a
w perlu to mog� nawet print values %foo, nic nie stoi na przeszkodzie (print i values to funkcje, natomiast %foo to tablica asocjacyjna)
quote:
w zwi�zku z powy�szym, nie zrzekasz si� praw do swojego `dzie�a'?
__________________
http://wow.allakhazam.com/profile.html?310690
Po ilu critach ty si� u�miechniesz?
Frozen do expansion packa.
quote:
Napisane oryginalnie przez insmac*1337
Rozrysuj sobie porzadnie tabele i relacje miedzy nimi, zeby nie robic na pale...
Zalezy od wielkosci, do malego projekciki najlepsze sa najprostsze metody i tyle.
quote:
Napisane oryginalnie przez insmac*1337
I potem sie ich kody sypia ;>
Trzeba jeszcze umiec odpowiednio planowac skrypty, bo klikac to prawie kazdy potrafi
__________________
Trzeba by� gorszym, by potem sta� si� lepszym
Trzeba by� g�upim, by m�c sta� si� m�drzejszym
quote:inne dialekty serwera to jedno z zastosowa�, do kt�rych obiekty lepiej si� sprawdzaj�.
Napisane oryginalnie przez nea*1337
Zale�y. Ja u�ywam tylko bardzo prostych struktur tabel, a ca�� reszte odwalam w php przez wirtualn� warstw� bazy danych. Jak co do czego to podmieniam tylko klas� DB i mog� przerzuci� ca�y projekt na inn� baz� (chocia�by z MySQL'a na PostgreSQL'a) bez pieprzenia si� z tworzeniem emulator�w jaki�tam fiku�nych operacji, kt�rych baza X nie posiada wbudowanych or whatever.
__________________
sort the flock (then, warn the "goats" & kill the "sheep");
kill them, dump qualms, shift moralities,
values aside, each one; die sheep! die to reverse the system
you accept (reject, respect);
Wszystkie czasy są EU (PL). Aktualna godzina 16:43.