Forum FAQForum FAQSearchSearch MemberlistMemberlist Forum ignore listForum ignore list RegisterRegister ProfileProfile Log in to check your private messagesLog in to check your private messages Log inLog in
fleksibilan update mysql baze putem form based sucelja

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    mi3dot.org Forum Index -> Server-side
View previous topic :: View next topic  
Author Message
fanatic



Joined: 02 Nov 2004
Posts: 81
Location: vienna

PostPosted: 02.01.2006 16:17    Post subject: fleksibilan update mysql baze putem form based sucelja Add user to your forum ignore list Reply with quote

jutro svima & svako dobro u 2006 Smile

nakon sto po deseti puta hardkodiram (php) update baze, rekoh sigurno ima neka fleksibilna varijanta koja ce mi ustediti mukotrpno prepisivanje imena polja u query-ima?

prvo sto mi je palo na pamet je - ugrubo receno - nazvati elemente formulara istim imenima kao polja u bazi, pa onda provrtiti kroz $_POST array i kreirati odgovarajuci query, ali siguran sam da to nije najinteligentnija ideja, tj. da vec postoji open source klasa koja rjesava ovaj problem.

kako vi rjesavate ovaj problem? i, btw, do sada sam obicno validirao formular javascriptom, ima li rezona da se ovo radi server side?

thx...
Back to top
View user's profile Send private message
retro_one



Joined: 16 Sep 2003
Posts: 880
Location: DUBRAVA.

PostPosted: 02.01.2006 16:47    Post subject: Add user to your forum ignore list Reply with quote

ja koristim adodb database layer koji ima autoexecute metodu koja generira sql

http://adodb.sourceforge.net

_________________
Just your average eccentric programmer.
Back to top
View user's profile Send private message
fanatic



Joined: 02 Nov 2004
Posts: 81
Location: vienna

PostPosted: 02.01.2006 17:02    Post subject: Add user to your forum ignore list Reply with quote

ja kao database layer koristim ezSQL
http://www.jvmultimedia.com/home/articles.php?articleId=2
koji, kako se cini, nema podrsku za generiranje sql-a.

pa mi je ili prepisati sve aplikacije ili traziti ekstra rjesenje...two beer or not two beer...
Back to top
View user's profile Send private message
unique



Joined: 29 Mar 2004
Posts: 655

PostPosted: 02.01.2006 17:25    Post subject: Re: fleksibilan update mysql baze putem form based sucelja Add user to your forum ignore list Reply with quote

fanatic wrote:
kako vi rjesavate ovaj problem? i, btw, do sada sam obicno validirao formular javascriptom, ima li rezona da se ovo radi server side?.

pa (imo) mislim da bi trebalo jos i 'na serveru' provjerit dali je sve uredu a ovaj client side ostavit radi usera ... jer je moguce ako netko zeli radit sr'nja da ce samo poslat taj POST (GET) data samostalno bez da prolazi kroz tvoju client-side validaciju... :/

_________________
Activate interlock! Dynotherms connected! Infracells up! Mega thrusters are go! LET'S GO VOLTRON FORCE!
Back to top
View user's profile Send private message
Sulien



Joined: 04 Jan 2004
Posts: 2905
Location: Zagreb

PostPosted: 02.01.2006 18:04    Post subject: Add user to your forum ignore list Reply with quote

UVIJEK napravi strogu server side validaciju ako dopuštaš bilo kome da ispunjava neke tamo forme (kao što su kontakt forme ili blog-like komentari)

Što se tiče SQL-a i ja preporučam layer kao adodb. Osobno ga ne koristim jer sam napisao layer koji mi generira query-e kakve želim - dao bih ti ga da je spreman ali eto još je uvijek navrat-nanos Confused
Back to top
View user's profile Send private message Send e-mail Visit poster's website
fanatic



Joined: 02 Nov 2004
Posts: 81
Location: vienna

PostPosted: 02.01.2006 18:11    Post subject: Add user to your forum ignore list Reply with quote

ja bih bio sretan i da ugrubo opises na kojem principu radi, jer se svakako spremam sam napisati nesto slicno Smile
Back to top
View user's profile Send private message
Sulien



Joined: 04 Jan 2004
Posts: 2905
Location: Zagreb

PostPosted: 02.01.2006 19:33    Post subject: Add user to your forum ignore list Reply with quote

Princip je jednostavan ako pristaješ radit na jedan malo drugačiji način. Prvo sam napisao generičku klasu za apstrakciju između MySQL i Postgres sličnu kao adodb ali sličniju PDO. ADO mi je bio prevelik i premoćan a PDO nije bio stabilan kao sada i neke mi se stvari nisu sviđale, makar trenutno radim na tome da wrappam i PDO metode u svoju klasu. Apstrakcija ti u principu ne treba ali ja se ne volim čvrsto vezati uz određenu bazu.

Nakon toga napraviš generičku klasu koja, kad se instancira sa imenom tablice i handlerom za bazu, analizira tablicu pomoću "DESCRIBE TABLE" (MySQL) ili jako kompliciranim queryem (Postgres) te spremi rezultate analize u svoje class property-e. Klasa definira i osnovne CRUD metode tako da za insert i update jedino što joj trebaš predati jest array sa podacima (može biti i POST). Klasa validira na temelju podataka analize tablice, escapea stringove i generira INSERT ili UPDATE. READ bi bio obični "SELECT * FROM" ako nemaš foreign keyeve koje bi htio zamijeniti sa podacima koje referenciraju, onda se stvari lagano kompliciraju ali i to sam riješio. Sve to ide preko primary keyeva koje klasa poznaje jer je analizirala tablicu.

Nakon što imaš osnovnu klasu, širiš je za posebne potrebe. Znači, napraviš klasu koja proširuje osnovnu klasu i redefinira njene metode koristeći naravno stare. U toj proširenoj klasi definiraš kompliciraniju logiku validacije, many-to-one ili one-to-many relationships i slično.

Osnovna klasa naravno ima i generateForm() metodu koja generira HTML formu DOM metodama. Time za općenitu namjenu developer ne mora koristiti ništa više od spomenute osnovne klase.

Naravno sve ovo je teški OOP i DOM pa naravno implicira i PHP5 ... za koji smo tek nedavno, na sramotu mnogo providera, počeli imati hosting (Plus nudi, Iskon skoro, Inside brijem, a onda će i drugi) - svejedno, switch treba napravit što prije
Back to top
View user's profile Send private message Send e-mail Visit poster's website
fanatic



Joined: 02 Nov 2004
Posts: 81
Location: vienna

PostPosted: 02.01.2006 23:44    Post subject: Add user to your forum ignore list Reply with quote

kao sto rekoh, ja koristim ezSQL - http://www.jvmultimedia.com/home/articles.php?articleId=2 - koji podrzava vise nego mi treba: mySQL, Oracle8, InterBase/FireBird, PostgreSQL, SQLite (PHP), SQLite (C++) i MS-SQL i moram reci da radi bez problema. ADO nisam iskusao, ali mi se nesto ne da prepisivati ezSQL metode, ali prouciti cu malo dokumentaciju pa tko zna...

sto se slijedeceg odlomka tice, u kojem opisujes srce sistema (analiza tabele pomocu "DESCRIBE"), ne mogu tvrditi da te u potpunosti slijedim, ali, iako ti tvrdis da je jednostavno, radi se o kompleksnim zahvatima. no, princip mi je ugrubo jasan...

ostatak takodjer ide; nisam hardcore programer, ali sam davno naucio cijeniti blagodati OOP-a, jedino jos nisam siguran da sam u stanju samostalno rijesiti ovaj problem. ali, pa makar i za vjezbu, vrijedi pokusati.

na zalost, moj provider, inace ne los - http://www.bluehost.com, jos uvijek ne podrzava PHP5 Sad

zahvaljujem se na iscrpnom odgovoru, zaista respektiram tvoju spremnost da ulozis svoje vrijeme za opce dobro Smile
Back to top
View user's profile Send private message
Sulien



Joined: 04 Jan 2004
Posts: 2905
Location: Zagreb

PostPosted: 02.01.2006 23:58    Post subject: Add user to your forum ignore list Reply with quote

Analiziranje tablice je komplicirano samo u Postgresu, gdje je zapravo i moćnije i daje više informacija. Što se tiče MySQL-a, probaj "DESCRIBE TABLE foo" pa vidi što ćeš dobiti Wink

Planiram jednom napraviti opensource release svojih base klasa (Cache, Client, Scaffold, GDA - Generic Database Access, SinteX, String i Template). Mislim da će to puno pomoći ljudima. Klase nisu nikakvo napredno programiranje i nipošto nisu komplicirane, samo skraćuju dosadan repetitivan posao kroz koji svaki programer prolazi. Jedino zahtijevaju osnovno znanje OOP-a i, naravno, PHP5

Last edited by Sulien on 03.01.2006 00:04; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail Visit poster's website
retro_one



Joined: 16 Sep 2003
Posts: 880
Location: DUBRAVA.

PostPosted: 03.01.2006 00:00    Post subject: Add user to your forum ignore list Reply with quote

@sulien: Mislim da model ne bi trebao imati nista sa validacijom....validaciju bi trebala po mojem trebala odraditi nekakva helper funkcija koja presrece $_POST array. Po meni bi i controller i model trebali biti 'fat-free' funkcije bez ikakvih dodatnih featureva.

@fanatic: iskreno, mislim da ces manje posla imati sa prebacivanjem iz ezpdo-a u adodb nego da sam programiras taj dio....

_________________
Just your average eccentric programmer.
Back to top
View user's profile Send private message
fanatic



Joined: 02 Nov 2004
Posts: 81
Location: vienna

PostPosted: 03.01.2006 00:20    Post subject: Add user to your forum ignore list Reply with quote

kako radi DESCIBE je jasno, ali nisam bas skuzio kako dovesti u relaciju polja u tabeli s odgovarajucim poljima iz formulara.

no, mozda je zaista nije losa ideja preci na ADO...

@sulien: hoce li se u zbirci naci i kakva klasa za session management? Smile
Back to top
View user's profile Send private message
retro_one



Joined: 16 Sep 2003
Posts: 880
Location: DUBRAVA.

PostPosted: 03.01.2006 00:29    Post subject: Add user to your forum ignore list Reply with quote

@fanatic: nije da sam ikako povezan sa adodb-om, ali adodb ima i mogucnost vodjenja sessiona kroz bazu Cool

_________________
Just your average eccentric programmer.
Back to top
View user's profile Send private message
Sulien



Joined: 04 Jan 2004
Posts: 2905
Location: Zagreb

PostPosted: 03.01.2006 02:06    Post subject: Add user to your forum ignore list Reply with quote

Eh, model i validacija... Jednom kad napišeš klasu koja proširuje osnovnu model klasu i u njoj definiraš logiku za validaciju to je već aplikacijska logika... meni je to model

tako i tako ja ne forsiram neki MVC nego samo osnovnu ideju iza njega (dokle to ide), mislim da je 'pravi' MVC moguć i ima smisla samo u event-driven okružju, znači u Javi, dok je o eventovima preko HTTP-a meni smiješno i razmišljati (eto već vidim nekog .NETovca kako će se ovdje ubacit)

Klasa za session management? Pa sigurno, za sustav logiranja itd... još nema ali nije to nešto komplicirano
Back to top
View user's profile Send private message Send e-mail Visit poster's website
retro_one



Joined: 16 Sep 2003
Posts: 880
Location: DUBRAVA.

PostPosted: 03.01.2006 10:25    Post subject: Add user to your forum ignore list Reply with quote

mne...validacija meni nije poslovna logika, i definitivno ne spada u model....jer ces prema razlicitom izvorfu inputa raditi razlicitu validaciju...a model bi trebao raditi po sistemu
"one model to rule them all" bez obzira prema kakvom viewu je usmjeren...za mene su intercepting filteri idealna stvar za validaciju (ili nesto slicno).

_________________
Just your average eccentric programmer.
Back to top
View user's profile Send private message
unique



Joined: 29 Mar 2004
Posts: 655

PostPosted: 03.01.2006 12:39    Post subject: Add user to your forum ignore list Reply with quote

retro_one wrote:
.za mene su intercepting filteri idealna stvar za validaciju (ili nesto slicno).

a sto ako se neki (slucajno) get, post ne tice doticnog sustava, a validator:"aaaa sto je ovo!? sto!? run for your life!!!!1" :/ meni se cini bolje da kad nekom objektu dajes nesta da on sam zove validator "upomoc!" :) :/

_________________
Activate interlock! Dynotherms connected! Infracells up! Mega thrusters are go! LET'S GO VOLTRON FORCE!
Back to top
View user's profile Send private message
retro_one



Joined: 16 Sep 2003
Posts: 880
Location: DUBRAVA.

PostPosted: 03.01.2006 13:35    Post subject: Add user to your forum ignore list Reply with quote

hm...pa ne budes napisao tupav validator Very Happy

validator mora znati na temelju $_GET, $_POST ili $_SESSION...whatever varijabli koju validaciju primjenjujes....uostalom ne radis nasumicnu validaciju na cijelom arrayu...nego znas koje polje treba odgovarati kojem validation ruleu

_________________
Just your average eccentric programmer.
Back to top
View user's profile Send private message
unique



Joined: 29 Mar 2004
Posts: 655

PostPosted: 03.01.2006 14:04    Post subject: Add user to your forum ignore list Reply with quote

retro_one wrote:
hm...pa ne budes napisao tupav validator Very Happy

imas pravo Smile

_________________
Activate interlock! Dynotherms connected! Infracells up! Mega thrusters are go! LET'S GO VOLTRON FORCE!
Back to top
View user's profile Send private message
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    mi3dot.org Forum Index -> Server-side All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group