Pogledajte određenu poruku
Staro 02. 02. 2006.   #39
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

Citat:
Originalno napisao degojs
Nego Gorane, da vidimo konkretno.

1. Imaš tabelu sa 40 polja.
2. Imaš jednu stranicu na kojoj korisnik unosi podatke za polja te tabele
3. Imaš drugu stranicu gde trebaš da prihvatiš unete podatke i spremiš u bazu

Kako ti to radiš?
Raspisali ste se, ja kao sve "kasnije ću na miru da pročitam", a ono sve više. Dakle:

Ako tabela ima 40 polja, onda nešto nije u redu sa tom bazom, fali joj malo sređivanja Ili radiš sajt za neku kladionicu Pa čak i ako ima, koliko ima takvih tabela? 1 u 10 godina? No dobro...

Ja sam napravio svoju klasu koja ne samo da radi te poslove tipa INSERT, UPDATE automatski nego generiše formulare, generiše server I client side error control (client: javascript, pre submit).

Znači korisnik klikne na submit, ja u kodu imam nešto ovako:
PHP kôd:
if ($FORM->validate())
{
     
$q $FORM->getInsertQuery ();

ili getUpdateQuery ();
ili getDeleteQuery ();

i onda izvrsim query koji je u stringu - posaljem ga DB klasi.

Znači, ovo je odgovor na "kako ti to radiš", ali mislim da namerno skrećeš sa teme. Niko ovde (odnosno, bar ne ja) ne priča o ovakvim query-jima. Ja govorim recimo o situaciji:
Kôd:
$sQuery = "SELECT c.*,
            f.forum_id,    f.cat_id, f.forum_name, f.forum_description,
            COUNT(t.topic_id) AS TopicCount,
            SUM(t.topic_views) AS ViewCount,
            SUM(t.topic_replies) AS RepliesCount,
            MAX(t.topic_timestamp) AS LastPost
            FROM ".TBL_FORUMS." AS f 
            LEFT JOIN ".TBL_CATEGORIES." AS c ON (c.cat_id = f.cat_id)
            LEFT JOIN ".TBL_TOPICS." AS t ON (t.forum_id = f.forum_id)
            GROUP BY f.forum_id
            ORDER BY c.cat_order, f.forum_order";
Koji "automatizam" moze da ti generise ovakav query ? Verovatno moze, ali moras da se ubijes i da potrosis gomilu vremena da izdefinises relacije, views... kako god ih zoves.

Pored toga, vecina stvari se cesto ponavlja, tako da recimo ako jednom napravis klasu users gde se on loguje, menja podatke, pretrazuje usere... onda je posao oko novog sajta samo da prekopiras klasu koju imas i eventualno dodas ili oduzmes par polja koja su specificna za odredjeni sajt.

I kažeš cimanje pisati sve te INSERT, UPDATE... Slažem se da je dosadno, ali veće je cimanje definisati tabele kao neki XML ili šta god, pa onda definisati relacije, pa views, pa ovo-ono (pri tom, uvek dođe do neke izmene kasnije pa moraš da predefinišeš relacije pa sve ponovo), pa onda to provaličit kroz neki kod koji će da generiše drugi kod koji bi trebao da radi sa nečim trećim... Koja je tu ušteda u vremenu ili trudu? A pokrenuo si ne samo artiljeriju nego i strateške bombardere i nuklearni arsenal da nebi pisao par querija koje si mogao da napišeš za kreće vreme nego što si napisao postove na ovoj temi.

I non sto pričate o portabilnosti. Nice. Ali, WTF? Koliko puta si morao da portuješ nešto na drugu platformu? Once in a lifetime? Hajde da čujemo koliko ljudi je portovalo nešto na drugu platformu gde mu se isplatio portabilan kod? Možda par? Možda ni jedan.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
bluesman je offline   Odgovorite uz citat