Jump to content
php.lv forumi

john.brown

Reģistrētie lietotāji
  • Content Count

    510
  • Joined

  • Last visited

Everything posted by john.brown

  1. Nu bet elementāri ;) Tu papriekš izdrukā formu, un tikai pēc tam ģenerē to random skaitli. Loģiski, viņš formā vienmēr ir no iepriekšējās sessijas... Liec to random ģenerāciju failā ar formu, un pēc tam pie bildes ģenerēšanas, ņem šamo no sessijas - un viss būs pareizi...
  2. imagecopyresized() vietā lieto imagecopyresampled() - kvalitāte būs labāka, slodze serverim lielāka, ātrdarbība - lēnāka ;)
  3. Ja neskaita Server Side Include - to varētu uzskatīt par "līdzīgu" tehnoloģiju :) Ar zināmām atrunām... Pure HTML tas, protams, nav ;)
  4. Es saprotu, ka var uzrakstīt :) Tik man nez kāpēc liekas, ka dotajā gadījumā tas nav īsti lietderīgi. Ko mēs iegūstam? Sarežģītāku un mazāk saprotamu kodu, palielinātu noslodzi db, nespēju lietotājam pateikt, cik ierakstu atrasts... Ar plus zīmi nekas prātā nenāk... Tomēr jau uzrakstīju ar rezultātu glabāšanu sessijā - strādā jauki.
  5. Hemorojs ir sekojoš: Ir modulis A un modulis B. Uz lapas liekam 20 ierakstus. Modulī A mēs atrodam 5. Modulī B ir, teiksim, 30 atbilastoši ieraksti. Ok, taisot selectu pirmajai lapai viss ir forši - dabonam ar LIMIT 0,$pagelimit+1 piecus ierakstus. Taisam selectu modulī B. Nu jau šitādu - LIMIT 0, $pagelimit-$res_founded+1. Un tālāk sākas hemorojs - taisot selectu priekš next page, man jāatcerās, kādā modulī man beidzās iepriekšējais selects, ar kādu ofsetu viņš beidzās... Ja ejam katru reizi cauri visam, skaitot ierakstus, tad, teiksim, modulī A pa to laiku ir parādījušies jauni ieraksti, tā
  6. Nu, tas atkal ir viena selecta risinājums... Vai jāuzskaita procesā, cik jau ir rezultāti atrasti, un izejot no tā dinamiski jāmaina LMIT parametri nākamajam. Un atkal ejot pa fwd-> jātaisa viltīgs algoritms, lai sāktu no vietas, kur iepriekšējā lapa beidzās. Hemorojs... Patiesībā jau nolēmu sessijā glabāt. Datu apjoms orientējoši nesanāk pārāk liels... Tak turpinājumā vēl jautājums. Vai var dabūt no db ārā "sakritību skaitu"? Tipa selects ar WHERE field LIKE '%bla%' - cik reižu katrā ierakstā tas bla ir atrasts. Jeb to var tikai ar kādu substr_count() dabūtajam textam izdarīt?
  7. Laikam gan nesanāks apvienot. Moduļi visi ir praktiski neatkarīgi, katram ir k. kādi savi meklēšanas ruļļi. Apvienošana/procedūras radīs imho lieku savstarpējo atkarību visai tai lietai, un pats process bik hemorojiska būs. Vot meklēšanas rezultāti visiem moduļiem ir pilnīgi vienā formātā, un tos mierīgi varētu likt kādā temp tabulā. Un no turienes jau taisīt to limit. Jautājums, kā efektīvi šamo tīrīt... Vai sessijā likt. Tad vispār tīrīšanas jautājums atkrīt...
  8. Parastam selectam ar limitu nav ne vainas, ja tas būtu viens selekts. Tak tas rezult�“jošais masīvs ir vairāku selectu rezultāts. To biš, mekl�“šanai katrā modulī ir savs selekts, jo katram modulim ir savas k. kādas tabulas, ar saviem laukiem, kuros meklet... Nesanāk nekādi parasts ar limitu :) Jeb tu no kurienes domāji to "katru reizi"? ---------------------- Uz lietu neattiecas, tak pēc Quick Edit forumā garais e paliek par jautājumzīmi ar pēdiņu. IMHO, kaut kur jānomaina str_replace() uz mb_ereg_replace()... vismaz man iekš RTE kādreiz līdzēja.
  9. Tātad, tiek veikta mekl�“sana dažādu moduļu tabulās. Rezultāti pagaidām likti iekš masīva, tipa $finder = new SearchFinder(); // inicializ�“jam mekl�“tāja objektu $finder->setSearchString($_GET['search']); while($modules) { // ejam cauri visiem moduļiem $mod = array_shift($modules); $cfgfile = $mod[0].'config/searchrules.php'; if(!is_file($cfgfile)) continue; include($cfgfile); // dabonam kādās tabulās, p�“c kādiem laukiem meklet $finder->setSearchRules($rules); // $rules - masīvs nodefin�“ts ieks $cfgfile $results = $finder->doSearch(); // pievienojam svaigi atrastos ierakst
  10. Nu, par to foreach visai strīdīgi... Imho, foreach jāizmanto ar associatīvajiem massīviem konstrukcijā tipa : foreach($array as $key => $value) {} Visos citos gadījumos būtu pareizāk izmantot for(), jo šamais ar visu count() ir ātrāks :) Pats gan slinkuma , gan īsāka pieraksta dēļ, šo jauko domu ne vienmēr ievēroju... ;)
  11. Nu bet jāatšķir tak piešķiršana no salīdzināšanas ;) if ($_COOKIE["dream_lang"] == ru)...
  12. Labi, nebij man šodien slinkums, un ir labdarības uzplūdi :) Neierobežota dziļuma meņucis, ar text faila datubāzi.... datu fails menu.txt: #path|name|url news|News|news.php news/intro|Intro|news.php?id=intro portfolio|Portfolio|portfolio.php portfolio/photo|Photo|portfolio.php?id=photo portfolio/video|Video|portfolio.php?id=video fails menu.php <?php $menufile = 'menu.txt'; $menuitems = get_items_from_file($menufile); print_menu($menuitems); function get_items_from_file($file) { $lines = file($file); $items = array('sublevels' => array()); foreach($lines as $line) { if($l
  13. Es jau tev teicu, ka tevis "sniegtā ideja" ir metama miskastē. Atvaino par tiešumu :) Ja sagribēsi trešo līmeni pievienot? Ko, vēl kādu dīvainu atdalītāj simbolu meklēsi, un visu kodu pārrakstīsi? Un kad beigsies dīvainie simboli? Nevajag izgudrot velosipēdu, piedevām, sliktu...
  14. Klau, tev jau vairāk kā lapa ir ieteikumu "kā attīstīt šo kodu", tak tu neko galvā neņem, tik cep vienu pēc otra vienādus postus. Kā tu domā, ar tādu piegājienu kādam ir interese tev ko ieteikt?
  15. Nē, nekas netiek mainīts $newsList = new model_NewsList(); while($news = $newsList->get()) { include(TPL_PATH.'/newstpl.php'); } Tas jau ar ir dīvaini. Principā jau problēmu apgāju - uzrakstīju savu each() analogu, tak tīri teorētiski... Vispār jau php4 priekš oop ir sucks :( P.S. uz php5 viss tas pats iet kā pa sviestu :)
  16. Ir man divas klasītes class model_NewsList { var $db = NULL; var $news = NULL; function model_NewsList() { $dbfile = NEWS_PATH.'/data.dat'; $this->db = & MICROdb::instance(); if(!is_file($dbfile)) { $this->db->createTable($dbfile,array('title','body','time')); } else $this->db->connectDB($dbfile,2); $this->news = $this->db->selectWhere('*'); } function get() { if(list($id,$vals) = each($this->news)) { // šeit ir problēma $news = new model_News($this); // ja nepadod $this tad viss iet $news->fill($vals); return $news; } return false;
  17. Dīvaini, man IE7 visu nosūta, un, godīgi, ne reizi ar tādu brīnumu sakāries neesmu 8) ------------- Ah, bļin FF tas bij! Sorry, Jā, ie nesūta :( Atvainojos par dezu...
  18. Izmanto kostanti __FILE__ iekš inkludojamā faila. Konstante __FILE__ satur pilnu ceļu uz failu, kurā ir pieminēta. Kā no pilna ceļa dabūt tev vajadzīgo, ceru, pats izdomāsi. P.S. nav prātīgi taisīt failbrouseri, kas bāzējas uz to, ka katrā folderī jāliek kāds izpildāmais fails. Ko, katru reizi taisot jaunu folderi, kopesi tur php failu? Liec vienu php failu root katalogā, un izmanto k.kādu variabli, tipa $base_dir, kurā tev ir ceļš uz pašlaik lasāmo folderi.
  19. Lietojot mvc paternu un php5 par labu un ērtu esmu atradis šitādu template engine: http://www.avtox.ru/templus/ Tur gan doķi švaki, un krieviski, tak lietošana bezgala primitīva, bet iespējas diezgan plašas...
  20. Tu domā direktoriju, kur izpildāmais fails atrodas? dirname($_SERVER['PHP_SELF'])
  21. Bet tev jau tur nekādas otras bildes nav :D Kas tur var "pārlekt"?
  22. Atkārtošu vēlreiz - pati ideja glabāt tādā izskatā to meņuci ir bezcerīga. Katram meņuca itemam ir jābūt savā rindā, ar norādi, kur konkrēti tas items iet. Vēl, kā ideju varu piesviest: glabā katram itemam "ceļu uz vietu". Tipa tā: lauki: path | name | url failā rindiņas: news|News|news.php news/intro|Intro|news.php?id=intro portfolio|Portfolio|portfolio.php portfolio/photo|Photo|portfolio.php?id=photo portfolio/video|Video|portfolio.php?id=video Kā no tiem ceļiem uztaisīt smuku masīvu, kuru tālāk kā meņuci izvadīt, vari šeit paskatīties: http://php.lv/f/index.php?showtopic=58
  23. Jā, pasteidzos priecāties :( Šitāds querijs pareizi aizgāja man uz lokālās mašīnas (Mysql 5) : SELECT DISTINCT f.fid, f.path FROM folders AS f LEFT JOIN user_folder AS uf USING ( fid ) LEFT JOIN folders_ugroups AS fu USING ( fid ) WHERE ( f.fid = uf.fid AND uf.user_id =1 AND uf.can_read = '1' ) OR ( f.fid = fu.fid AND fu.gid IN ( 1, 2 ) AND fu.can_read = '1' ) ORDER BY f.path Dimžēl, uz production mašīnas (Mysql 4.1.21) šamais neiet. Tā pati vaina - ja tukša user_folder, neatgriež neko, tak ja user_folder ir k.kas, tad atgriež tik to ierakstu no folders, kuram ir atbilstošs ieraksts iekš
  24. Loģisks risinājums ir prātā :) Atteikties no tās dīvainās faila struktūras, kura gaisu jauc. Un : 1) turēt prastu php failiņu ar struktūru, tipa, kā Delfins uzrakstīja 2) izmantot mysql ar tabulu, tipa: item_id | name | parent_id. Un no tās taisīt struktūru, kā Delfins uzrakstija 3) taisīt augstāk minēto tabulu teksta failiņā, un rakstīt iekš php handleri, kas no tā failiņa taisīs struktūru, kā Delfins uzrakstīja :)
  25. Nu, jā, paldies. LEFT JOIN palīdzēja :)
×
×
  • Create New...