Jump to content
php.lv forumi

betons

Reģistrētie lietotāji
  • Posts

    88
  • Joined

  • Last visited

Posts posted by betons

  1. Man ir tāda lieta, ka lapā ir ap 20 diezgan identisku HTML gabalu, katrs ap 1kB, ar tikai nedaudzām atšķirībām.

    Kāds būtu optimālākais veids šādas lapas ģenerēšanai.

     

    Ja to dara ciklā ar PHP, tad visi 20 fragmenti slogo trafiku.

    Ja to dara ciklā ar JS, tad IE nemāk kešot bildes, kuras ir dinamiski izveidotas ar JS un katra fragmenta bilde IE tiek serverim pieprasīta 20 reizes.

     

    Ieteikumi?

  2. Pār kodera biezajiem matiem,

    Nakts pelēkus palagus klāj,

    Gar tumšiem kaktu stūriem,

    Peles un prusaki slāj.

     

    Dus priekšnieks savā pilī,

    Dus viņa padoto bars,

    Dus grāmatveži un sargi,

    Un firmas apkopējs Larss.

     

    Tik dziļākās istabas kaktā,

    Koderis nomodā,

    Tas meklē bagus kodā,

    savā un svešajā.

     

    Te it kā pa sapņiem tam liekas,

    Ka bugi sāk vairoties,

    Ka kodā līkumi,

    Ka jāpārtaisa viss.

     

    Un trauksme sirdī jau ceļas,

    Un asinis galvā skrien,

    Un asi pirkstu gali,

    keiborda panelī lien.

     

    "Kods līks! Sāc jaunu! RTFM!

    Tu glābsi sev dzīvību!

    Mēs algosim tevi ar zeltu,

    Ar godu, ar brīvību"

     

    Mans zelts ir mana proga,

    Mans gods ir viņas kods.

    Kas apšauba manu kodu,

    Uz pekli lai rauj to jods.

     

    Un koderis ķeris pie bagiem,

    Un keiborda taustiņi trīc,

    Monitors blāvi zipsnī,

    Un baroklis nelabi sīc.

     

    Mirdz ārā laternu uguns,

    Sāk rinda pēc rindas līt,

    Dreb, šupojas koderim rokas,

    Un brakš, un gāžas, un krīt.

     

    Un kodera krūti,

    Prusaku ceļi šķeļ,

    Bet lielais kodera blīkšķis,

    pārējos koderus ceļ.

     

    Un brangi koderu pulki,

    Uz cīņu php ņem,

    Un bugiem pretī stājas,

    Izķer un projām dzen.

     

    Bet uzvaras gaviļu svētkos

    Meitenes vaiņagus pin,

    Un varoni sirmā māte

    Sniegbaltos autos tin.

  3. Dari tāpat kā ieteicu iepriekš

    izveido lietotājam lauku total_comment_views un, katru reizi, kad apskata konkrēta lietotāja komentāru palielina USER tabulā to total_comment_views un tad tev nevajadzēs nekādus sarežģītus kverijus, jo tas total_comment_views jau būs katram lietotājam.

     

     

     

    =================

     

    Par top 50 kverijiem!

     

    Man ir jautājum kādam kurš zin, par andrisp kveriju:

    SELECT author, COUNT(*) as comment_count 
    FROM comments GROUP BY author 
    ORDER BY comment_count DESC LIMIT 50

     

    Ja būs 50 autori savadījuši pa 1000 komenti katrs, kāds būs šī kverija laiks, ja visas kollonas būs salikti pareizi indeksi.

    REspektīvi vai mysql indeksu koks glabā kautkādas daudzumu starpvērtības vai arī šī kverija ilgums būs 50 000 darbības ?

  4. Es tomēr ieteiktu USERS tabulā uztaisīt lauku comment_count un tad pie katra komentāra pievienošanas pieskaiti tam USERim comment_count un tad TOP komentus vienkārši ar

    SELECT username,comment_count FROM users ORDER BY comment_count DESC LIMIT 0, 50;

  5. Cik līdzīgu ss?

     

    *Kādas ir iespējamās lietotāja funkcijas - pievienot sludinājumus, dzēst, personīgais profils ar sludinājumu menidžēšanu, attēlu pievienošana, ... , utt?

    *Admina pusē - kategoriju rediģēšana, reklāmas banneru sistēma, jauno sludinājumu pārbaude, utt, utjp?

    *Vispārīgi - īsziņu apmaksu sistēma, ... ?

     

    Ja ir kaut kāds principiāls funkciju aprakst var ielikt šeit, vai, ja negribi, tad atsūtīt uz [email protected]

  6. Tātad man ir šāds .htaccess fails, kurš

    pieprasījumu: aaa/bbb/ccc

    pārtaisa kā: index.php?p1=aaa&p2=bbb&p3=ccc

     

    RewriteEngine On
    
      RewriteCond %{REQUEST_URI} ^(.*)/(.*)/(.*)/(.*)$
      RewriteRule ^(.*)/(.*)/(.*)/(.*)$ index.php?p1=$1&p2=$2&p3=$3&p4=$4 [QSA,L]
    
      RewriteCond %{REQUEST_URI} ^(.*)/(.*)/(.*)$
      RewriteRule ^(.*)/(.*)/(.*)$ index.php?p1=$1&p2=$2&p3=$3 [QSA,L]
    
      RewriteCond %{REQUEST_URI} ^(.*)/(.*)$
      RewriteRule ^(.*)/(.*)$ index.php?p1=$1&p2=$2 [QSA,L]
    
      RewriteCond %{REQUEST_URI} ^(.*)$
      RewriteRule ^(.*)$ index.php?p1=$1 [QSA,L]

     

    Bet tākā man ir nepieciešams, lai šis viss strādātu jau no domeina, respektīvi xxxxxxxx.lv/aaa/bbb/ccc, tad pilnīgi visi faili tiek pārsaukti, tai skaitā .css, .js, .jpg.

    Tātad jautājums tāds:

    Kā var izdarīt tā, lai attiecīgos failu tipus jau apstrādā pirms tam, respektīvi es vēlētos, lai xxxxxxx.lv/a.jpg tiktu ņemts no mapes /img/a.jpg un

    xxxxxxxx.lv/main.css no mapes /static/main.css

     

    Man variants ir šāds:

     

    RewriteCond %{REQUEST_URI} ^(.*).jpg$
      RewriteRule ^(.*)$ /img/$1 [L]

     

    Bet man rāda 500 Internal server error.

     

    P.S. otro kodu lieku uzreiz aiz RewriteEngine On

    P.S2 Kļūdu izsauc tikai pie xxxxxxxx.lv/a.jpg, pie cita tipa failiem vai mapēm viss ir normāli.

     

    ??????????????????

     

     

     

    ===========================

     

    Problēma atrisināta.

    Izrādās pec tam, ka pēc a.jpg pārtaisīšanas, par img/a.jpg, Apache vēlreiz vēršas pie .htaccess faila un mēģina pārtaisīt par img/img/a.jpg, un tā līdz bezgalībai, līdz izsaucas kļūda.

    Problēma atrisinājās, ieliekot img mapē .htaccess failu ar RewriteEngine Off

  7. Vidējs informatīvais portāls dienā ar Adsense var dabūt ap 5$ no 1000unikāliem, bez pašklikošanas.

    Ja paeksperimentē un padomā līdzi lietotāju vidējaai domāšanai un precīzi izvieto reklāmas, tad var dabūt pat 20$ no 1000unikāliem dienā.

    Vēl ir ļoti atkarīgs no portāla tēmas.

    Ja portāls ir ļoti vispārīgs un tur ir kaut kāds funny pictures, tad par kliku būs vidējis 3 centi.

    Ja portāls ir par kādu kokrētu tēmu, kuras produkti vai pakalpojumi ir salīdzinoši dārgi - tehnika, auto, finanses, utt. Tad par vienu kliku vidēji būs 30-40 centi, bet man pieredzē lielākais par kliku ir bijis 2,71 $.

    Ā un protams atkarīgs no kurienes ir lietotāji. Ja lietotāji ir no Latvijas tad maksā maz, ja no ASV, tad 5-10 reizes vairāk, jo tad tiek attēlotas dārgākas reklāmas, kuras Latvijas lietotājiem neattēlo.

  8. miljoniem/miljardiem webu strādā ar tām.. un it kā viss ok. Tā kā tas ir principiāls jautājums... Drīzāk grib visus piesiet kaut kāda viena extensiona. (moš google-ads leks no SQL rezulta.. hvz.. viss ir iespējams)

     

    Man jau arī liekas, ka tās ir kautkādas pilnīgas muļķības, jo mysql_... un mysqli_... tak ir iedzimtās MySQL funkcijas, un, IMHO, tām vajadzētu strādāt ātrāk un stabilāk par jebkuriem citiem extensioniem un visādiem PDO.

  9. Migrate your data layer to PDO - do not use the old style mysql_*() functions as they are known to be faulty

     

    1)Vai šeit ir jau kāds, kurš regulāri izmanto PDO? Un vispār tas citāts jāuztver kaut cik nopietni?

     

    2)Vai bindValue() pasargā no SQL injekcijām?

  10. Jā, to es arī lēnām sāku saprast ka ar mysql nevar, laikam tikai ar mysqli var.

     

    Beidzot izdevās izveidot kodu, kurš veiksmīgi izvada abu procedūras SELECT rezultātus, ja kādam interesē, tad viņš izskatās šāds:

     

    <?php
    $mysqli = new mysqli("localhost", "root", "", "test");
    $query='call cc();';
    if ($mysqli->multi_query($query)) {
     do {		
    if ($result = $mysqli->use_result()) {
      while ($row = $result->fetch_row()) {
    	print_r($row);
    	echo '<br>';
      }
      $result->close();
    }	
    if ($mysqli->more_results()) {echo '<hr>';}
     } while ($mysqli->next_result());
    }
    $mysqli->close();
    ?>

  11. Tātad izveidoju Stord procedure:

     

    CREATE PROCEDURE `cc`()
    BEGIN
     SELECT * FROM t1;
     SELECT * FROM t2;
    END

     

    MySQL query browserī palaižu call cc(); un tur man atgriež 2 dataset.

     

    PHP mysql_query('call cc()')

    rāda ka nevar atgriezt nekādu rezultātu.

     

     

    Tātad jautājums tāds: Kā var izsaukt šo procedūru ar PHP un kā tikt pie abiem datasetiem?

  12. 2. Ir pilnigi bezjedzigi viena UPDATE likt 2 NOW() {varjaubut ka kadreiz savadak nevar }

     

    Konkrētis piemērs ir šāds

     

    UPDATE t1 SET l1=l1+l2*(UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(lpt)), ... vēl aprēķini, kuros izmanto to pašu now() ..., lpt=now() WHERE .....

     

    tātad lpt ir laiks, kurā tika veikts pēdējais aprēķins

    (UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(lpt)) ir laika starpība starp pēdējo aprēķinu un tagadni

     

    un man ir svarīki lai laika starpības izmantotais now(), būtu tāds pats, kā beigās, kad lpt=now();

     

     

     

    Nu, tad sakarā ar šo vēl viens jautājums:

     

    Es vairākas reizes izmantoju aprēķins laika starpību

    (UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(lpt))

     

    Vai ir kāds veids, ka viņu izmantot vienreiz, es pašlaik atradu tikai veidu, ja izmanto papildus fieldu:

     

    UPDATE t1 SET dt=(UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(lpt)), l1=l1+l2*dt, ... , lpt=now() WHERE .....

     

    Vai to ir iespējams izdarīt bez papildus fielda?

  13. Jautāšu šijā pašā topikā:

     

    1) Ja man ir kverijs:

    UPDATE t1 SET a1=now(), ... (daudz visādi aprēķini, kas var aizņemt laiku) ..., a2=now() WHERE id=1;

    Vai ir teorētiski iespējams ka a1 un a2 atšķiras, tas ir, ja kverijā vairākas reizes izmanto now(), vai viņš viena kverija ietvaros būs vienāds?

     

    2) Ja tāds pats kverijs tikai WHERE id>1 and id<100

    Vai šādā gadījumā katrā no rindām now() lielums var atšķiries?

     

     

    3) Ja ir kverijs, kuram tiek nodoti kādi 3 parameri, bet viņš ir kādus 500-1000 simbolus garš, jo viņā ir gari aprēķini, vai ir jēga taisīt STORED PROCEDURE ar domu samazināt trafiku starp php un mysql serveri? Vai varbūt kāda cita jēga?

  14. Tātad man ir user tabula, kurā tiek glabāti reģistrētie lietotājis.

    Man ir tāda nepieciešamība, ka katram userim ir nepieciešami kādi 40 datu lauki.

    Šie lauki tek izmantoti dažādos aprēķinos un tiem ir dažādi datu tipi.

    Bez tam programmas upgreidošanas procesā var rasties vēl pāris desmiti lauku.

     

    Mans jautājums ir tāds, kā labāk darītu šādā situācijā jūs???

    - Glabātu visus laukus user tabulā?

    - Ustaisītu vēlvienu tabulu, kurā viens ieraksts ir piesaistīts vienam lietotājam user tabulā?

    - citi varianti?

     

     

    Vēl vien jautājums:

    Kā jūs domājat ir darīt labāk:

    1) Aprēķinus likt veikt MySQL serverim;

    2) Pieprasīt daus no MySQL, aprēķināt ar PHP un tad aizsūtīt atpakaļ uz MySQL.

  15. Šeit gan principā ir divi gadījumi:

    1) Vai tu uzskati sevi par strādnieku, tad visdrīzāk ir Ls/h;

    2) Ja tu sevi uzskati nedaudz arī par biznesmeni, tad principā ir tā, ka tev ir jāizspiež maksimālā summa kādu viņi būtu gatavi maksāt. Tam gan jau vairs nav tik liels sakars ar programmēšanu.

×
×
  • Create New...