Jump to content
php.lv forumi

black

Reģistrētie lietotāji
  • Posts

    421
  • Joined

  • Last visited

Everything posted by black

  1. Joprojām īsti nesapratu - tu tā kverija rezultātu iesaki pēc tam ar PHP vēlreiz sagrupēt? Tas īsti neder, jo kategorijas ir pārdesmit tūkstoši.
  2. Koko paldies par kveriju. Tā problēma ir, ka viņš neatbalsta n-līmeņu kategorijas - šis varētu strādāt, ja kategorijas būtu tikai 1-2 līmeņos. Ti, tagad viņš atgrieztu produktu skaitu zemākā līmeņa kategorijās, bet man vajag listu, kas satur augstākā līmeņa kategorijas. Cucumber domu īsti nesapratu.
  3. Hello, Es nevaru izdomāt, ko lai iesāk ar kategoriju strukūru. Man ir interneta veikals, kurā ir n līmeņu kategorijas. Ir arī produkti, 1-N links uz kategoriju tabulu. Problēma ir uztaisīt kategoriju browseri, kas katrā kategorijā parādītu produktu skaitu, ieskaitot arī apakškategorijās esošos produktus. Rezultātam vajadzētu izskatīties šādi: Velosipēdi (20) Datori (12) Skaitlis iekavās nozīmē visu produktu skaiti apakškategorijās. Kādreiz taisīju to visu Oraclē un MaxDB, tur nebija problēmu uzrakstīt rekursīvu SQL kveriju, kas saskaita apakškategorijās esošos produktus, taču tagad es taisu projektu, kurā vienīgā datubāze ir MySQL 4.1. Tabulas (man, protams, ir vairāk lauku, bet piemēra pēc): categories( category_id int not null auto_increment, parent_id int, name varchar(50), primary key(category_id)); products( product_id int not null auto_increment, category_id int not null, name varchar(50), expires datetime, primary key(product_id)); Vai ir kādi ieteikumi, par to, kādu db struktūru izmantot? Es mēģināju katrai kategorijai pievienot size lauku, un pie katra produkta ievietošanas, palielinātu to par 1, bet produktiem ir noteikts derīguma termiņš, un size lauks kategorijā tāpēc, diemžēl, neder.
  4. Tieši ar LMT gan neesmu strādājis, bet šķiet, ka tas stāsts nav pat pāris alu vērts. Ir tāda lieta kā SMS gateway, kas ir vienkārša web lapa/web forma. Sūtot SMS, tu tai lapai padod savu lietotāja vārdu/paroli (to, jādomā, LMT iedos pēc līguma noslēgšanas), un SMS tekstu/adresāta numuru. Atkarībā no tā, kāds tur ir gateway, var nākties nodot tos parametrus vai nu ar GET requestu, vai arī POST. Ja gribi POSTot, paskaties par CURL funkcijām PHP manuālī, ja pietiek ar GETu, tad tas pat ir vienkāršāk. P.S. Toreiz manam gateway vēl varēja [brīvi] norādīt SMS sūtītāja numuru. Jauks veids, kā 'iznest cauri' draugus vai sariebt konkurējošajam politiķim :D
  5. black

    Slēpt adresi

    Uztaisi neredzamu formu (nosleep ar css, un ieliec vienu neredzamu lauku, ti, <input type="hidden" name="delete_id"/> utt), un tad, kad shis noklikskina uz linka, palaid javascripta funkciju, kas nomaina formā variabli, un nosubmito to formu uz vajadzīgo URLu. Easy.
  6. OK, tikko sapratu, imojams. Bet tik un taa, neizplati to kodu taalaak. Es zinu, kur Tevi atrast :D Vinsh Tev tika iedots tikai izgliitoshanaas noluukos.
  7. Nē :D Bet es varu mēģināt paskaidrot... Patiesībā es pats vairs nelietoju PHP, nerunājot par Smartijiem un citiem zvēriem, taču esmu daudz, daaaudz gadus ar PHP nostrādājis , tādēl vienkārši nolēmu mazliet padalīties savā pieredzē par Singletoniem, templeitēm, utt. Nejauši pieminēju Smartiju, un izcēlās lielais flame. Tā kā atbildēs dominēja viedoklis, ka 'Smarty sucks', jutu vajadzību kaut ko atbildēt. Jau trešo reizi šodien - es nebūt nesaku, ka es zinu pareizo atbildi - katrs pats var izlemt, ko (ne)lietot. Laba, argumentēta diskusija ir daudz svarīgāka nekā tas, kam patreiz ir taisnība. (Ja nevar noprast - TAISNĪBA IR MAN :) :) :)
  8. Protams, pirmajā reizē Smarty nokompilē to templeitu, ieraksta kompilēto versiju failā, izveido nepieciešamos direktorijus, utt., tāpēc arī ir krietni lēnāk, nekā parasts PHP. Pamēģini kaut vai laist tos pašus regexpus, būs, protams, ātrāk, nekā Smarty, taču arī, cerams, redzēsi atšķirību. Taču pēc tam Smartijs izmanto jau kompilēto versiju un atšķirība ir tikai tā, ka jāielādē/jāapstrādā Smartija klase/konfigurācija/etc. Nafig PHP, rakstām visu asemblerī. Ātrdarbība palielināsies x reizes!
  9. Tas ir vidējais laiks no 1000 mēģinājumiem, vai arī Tu laidi tikai vienu reizi? Kas notiek, ja atslēdz templeišu kompilāciju? Un galu galā, ko Tu gribēji pierādīt - ka uz 'paveca kompja' paiet tieši 0.03 sekundes, lai nokompilētu Smartija klases? Un ja atslēdz visas Smartija papildus fīčas, pluginus, utt.?
  10. Tiem, kas saka, ka templeišu 'performance ir zem katras kritikas'... Padomāsim, ko tad dara tas pats Smarty! Katru reizi, kad kaut kas tiek mainīts template, Smarty nokompilē mainīto failu, pārveidojot templates kodu tīrā PHP kodā. Tālāk, katru katru reizi, kad tiek pieprasīts templates kods, Smarty vienkārši nočeko datumus templātei un nokompiplētajai versijai, un ja templāte nav mainīta, izpilda kompilēto versiju. Performance zudumi? Datumu pārbaude 2 failiem. Starp citu, šo pārbaudi var arī atslēgt, gadījumā ja PATIEŠĀM nepieciešama maksimāla ātrdarbība. Rezultātā iegūstam tieši tādu pašu kodu, kā tad, ja būtu rakstīts ar roku. Vai tad izklausās tik drūmi? un un
  11. Manuprāt, piemērs nav padevies īpaši labs. Cik es saprotu, kāds cenšas templeitē noteikt access tiesības resursiem :) Templeites ir domātas datu prezentācijai, nevis loģikai. Ja nepieciešams pārbaudīt, vai lietotājam ir šādas vai tādas tiesības, tad to būtu jādara business loģikai. Tie, kas grib templeitēs izmantot ifus un loopus (ja neskaita atsevišķās vietas tabulas izdrukāšanai, piemēram), neatdala prezentāciju no biznesa loģikas, attiecīgi zūd jēga no templeišu izmantošanas vispār. OK, 100% to izdarīt tāpat nav iespējams, taču Smarty templātēs nebūtu jāmočī iekšā ifi un elsi. Kā jau teicu iepriekš - katra paša ziņā tas, vai izmantot Smarty, phpTemplate, rakstī kaut ko pašam, vai kā te viens gudrenieks nesen ieteica - rakstīt visu outputu ar "echo".
  12. Man kaut kā sanāca doties otrā virzienā - sāku ar PHP templātēm, tad sāku izmantot dažādus citus variantus, līdz beidzot apstājos pie Smarty. Var jau būt, ka kādu dienu sapratīšu, ka tas viss ir priekš kaķiem, un sākšu lietot kaut ko citu :D Par iemesliem, kāpēc Smarty - lasi šeit. Taču runa jau nav par to, vai lietot vai nelietot tieši Smarty. Katrs jau var izmantot to, kas pašam vislabāk patīk, un kurā kods rakstās visātrāk un vislabāk. Man nav nekas arī pret regexpiem kā tādiem, pieņemu, ka ir reizes, kad labāk rakstīt pašam savu kodu (piem., ja ir nepieciešama super-duper ātrdarbība, un Smarty šķiet pārāk lēns), taču 99 gadījumos no 100 - kāda jēga vēlreiz pārrakstīt to, ko kāds jau ir uzrakstījis?
  13. Iepriekš saņēmu komentāru par to, ka 'cērtas acīs' valoda. Šoreiz centos references saukt par atsaucēm, aplikāciju par lietojumprogrammu, lielas jēgas, acīmredzot, no tā nebija. Par ātrdarbības zudumiem - es jau nesaku, ka, izmantojot templates, programma strādās ĀTRĀK. Taču, ņemot vērā manu pieredzi, ātrdarbība nesamazinās tik ievērojami, lai neatmaksātos visas templeišu labās īpašības (koda lasāmība, utt). Galu galā, datori paliek arvien ātrāki un tagad lētāk sāk palikt nopirkt pāris papildus kastes, nevis algot papildus programmētājus. Laacz raksta: “kālab vēlreiz jāizgudro velospiēds”. Tieši tā arī ir galvenā doma par regexpiem un citām pašu būvētām template sistēmām.
  14. Turpinot nelielo rakstiņu sēriju par 5 lietām, kuras Tu nezināji - pankūku princips jeb vieds, kādā es iesaku izkārtot veidnes (templates). Raksts izlasāms šeit. Ja ir kādi komentāri, viedokļi vai jautājumi, lūdzu postējiet šeit, vai arī blogā. Ceru, kādam noderēs.
  15. Nezinu gan, tajos linkos bija pārāk daudz elementāru piemēru. Piemēram, pie SQL lietošanas ir rakstīts, ka vajag izmantot WHERE, nevis ievilkt VISU tabulu, un tad ar if skatīties, vai id atbilst vajadzīgajam. Vairāk biju domājis kaut ko mega-advancētu :)
  16. Pieņemsim,ka jūzeris lāgā nepārzina html, un ieraksta kaut ko tamlīdzīgu: '</b><b></b>' Un tad tava programma sapratīs, ka vajag vēl vienu atverošo <b>, un pieliks to beigās?
  17. Varbūt vēl kāds zin kādu PHP noslēpumu, kuru viņš vēlētos atklāt citiem? :D
  18. Ir doma apkopot idejas par PHP valodas 'neizmantotajām' iespējām, t.i., lietām, kuras visi zin, bet neizmanto. Esmu uzrakstījis nelielu rakstiņu par pirmo no '5 lietām, kuras Tu nezini'. Laipni lūgti atstāt komentārus, kā arī ieteikt vēl citus, mazāk zināmus PHP trikus, fīčas, iespējas. Cerams, ka kādam noderēs!
×
×
  • Create New...