101

(12 replies, posted in JavaScript, jQuery, AJAX)

žiūri scripto kodą ir matai jo veiksmus. Jeigu labai painus naudojiesi debugeriu su watch / trace funkcijom.

102

(12 replies, posted in JavaScript, jQuery, AJAX)

zygis susipainiojo (-;

103

(12 replies, posted in PHP)

O jeigu yra 100 įrašų ir noriu pirmą įrašą nukelti į 50-ą vietą?

104

(12 replies, posted in PHP)

skuelas wrote:

Tai jis sake to drop dauno nenori, o tai patogiausias variantas butu. O kas del pirmos ir paskutines vietos tai galima tikrinti jei paskutine ir norima toliau mest, permeta i pirma ir atvirksciai.

Galima ir be drop-down'o, aš asmeniškai niekur neminėjau konkrečiai drop-down'o. Manau šiais laikais galima sukonstruoti pakankamai labiau vartotojišką control'ą. (-;

105

(12 replies, posted in PHP)

Tai aš ir rašiau, kaip išvengti to ciklo arba bereikalingo spaudinėjimo.

106

(12 replies, posted in PHP)

Sukeitimas vietomis, kai įrašai yra iš principo rikiuojami tik pagal įrašymo eiliškumą, susiveda į papildomo stulpelio, kuriame yra saugomi unikalūs skaičiai kiekvienam įrašui reikšmių sukeitimui. Tas apildomas stulpelis dažniausiai vadinamas proritetu (priority).

Tie tavo mygtukai (button) ar papraščiausios nuorodos (link) prie kiekvieno įrašo turi tiesiog vykdyti script'ą, kuris sukeičia vietomis dviejų prioritetų reikšmes.

+1 / -1 metodo nerekomenduočiau, nes čia yra šiek tiek apsiribojama, kad vietomis gali keisti tik šalias einančius įrašus, ir jeigu nori sukeisti pirmą su paskutiniu, turi daug kartų kažką spaudinėti.

Serverio pusėje viskas susiveda į porą UPDATE užklausų.

Pagal klaidos pranešima atrodo, kad kažkas neteisingai su vartotoju / teisėm. Ten message log'e rašo: "access denied for user ''@'localhost'. Taigi vykdant čia operaciją esamas vartotojas nenurodytas, tai reikėtų žiūrėt ar pas ten ten programa nemoka kažko, arba buvo atsijunta prieš vykdant operaciją.

Geriausia būtų testuoti iš komandinės eilutės su klientine programa "mysql".

108

(12 replies, posted in PHP)

Taip, teisingai būtų naudoti po kiekvienos užklausos.

Aišku viską reikėtų įpakuoti į kažkokią klasę, kad to pačio dalyko nereikėtų kas kartą rašyt.

qwertyuiop wrote:

Tarkim, pirmoje lenteleje yra 1,000,000 irasu, o antroje lenteleje ju yra 100,000. Abiejuose lentelese ID laukai yra indeksai INT auto increment. Taigi, minde, kaip pats darytum? Naudotum viena uzklausa be LIMIT ar dvi uzklausas su LIMIT? Mano tikslas - sunaudoti kuo maziau serverio resursu. Dekui.

Pabandyčiau abu variantus ir pamatuočiau/paskaičiuočiau. šiaip dar turiu įtarimą, kad abieju variantų rezultatai skiriasi...

Ajaks wrote:

Siuo atveju mes kalbam ne apie varchar 255 o apie tai kas daugiau kainuos: ar kabuciu nerasymas ar ju rasymas ir leisti sistemai atsirinkti.

Būtent apie tai ir kalbam. Paskaityk mano paminėtus punktus, ir tai, kad dar bent du kartus pažymėjau, jog yra daug svarbesnis dalykas negu tu bandai čia akcentuoti. Jau tai kad mes čia tiek prirašėm besigynčidami įrodo, kad tiesiog esu teisus. Ir kabučių neparašymas kainuoja per brangiai, kad jų nerašyti. Netgi nežiūrint kokio dydžio yra saitas, nes kodą skaityti gali ir brangiai apmokami žmonės.

O minty supratom, tu sau aukštų tikslų gyvenime nekeli, nei darbo prasme, nei projektų (-;

Kalbam ne apie perdėtą optimizavimą. Kalbam apie tai kad iš karto rašyti teisingai ir kad niekam pažiūrėjus į kodą nekiltu kažkokių klausimų, kaip kad dabar. Aš ne šiaip sau čia paklausiau/parašiau, o todėl, kad ne kartą esu matęs ID laukus iš VARCHAR(255), kur realiai naudojamas INT'as. Ir čia nieko nuostabaus, gal ir pats kažkada senai taip dariau. šiuo atveju netgi ir svarbesnis punktas, kad kažkas ne taip kažką interpretuos ir papildomai gaiš laiką ten, kur nereikia.

Ajaks, nežinau ką čia iš tikro nori išvedžioti. Skirtingo ilgio teksto išvedimas ir STRING konvertavimas į INT nėra tolygūs dalykai. Aš nesakau, kad konversija yra nežmoniškai brangi. Bet jeigu gali neišvedinėti bereikalingo teksto - neišvedinėk. Jeigu gali išvengti bereikalingos operacijos - išvenk.

SQL užklausos yra linkusios būti vykdomos šimtus, tūkstančius ir milijonus kartų. Projektuose skirtingų užklausų dažniausiai yra nuo kelių iki keliasdešimt kiekvieno puslapio užkrovimo metu. Papasakok facebook ar google inžinieriams, kur sutaupyti tūkstantąją serverio apkrovimo dalį vienos užklausos vykdymo metu ir jie tau tikrai pasakys daugiau negu ačiū (-;

Dėl bendro sąnaudų-rezultato skaičiavimo aš iš principo sutinku, bet šiuo atveju tas negalioja, nes sąnaudos ar parašyti 1 ar '1' yra vienodos.

čia tos kabutės yra tik šiaip, bendras pastebėjimas prie kur kas svarbesnių dalykų.

Nerijus7, tai kas konkrečiai nesigauna? Nes proporcijos skaičiavimą iš kažkur nusikopijavai lyg ir teisingai. Tau reikia tik kodo, kuris nusiskaito esamus dydžius, tada su šiuo kodu perskaičiuosi į nauju, ir paskiausiai pakeisi paveiksliuko dydį. Konkrečiai kas nesigauna?

str_replace šiuo atveju nelabai korektiška. Reikia suprasti, kad mysql'as dešimtainius skaičius laiko saugo po taško, o pas tave kablelis. Jeigu nori daryti viską korektiškai, turi iš vieno formato pakonveruori į kitą formatą. Yra tam speciali funkcija, kurią gali naudoti prieš įterpiant skaičius į DB: http://php.net/manual/en/function.number-format.php

Jeigu dedi INT tipo stulpelio reikšmę į kabutes, tai:
1) painioji tuos, kurie skaito/mato kodą ir galvoja, kad ten ne INT tipas;
2) verti mysql serverį papildomai atlikti konversiją iš STRING tipo į INT tipą;

Tiek pirmu tiek antru atveju yra analizuojamos abi lentelės.

Papildoma užklausa čia tikriausiai mažiausiai prideda "greičio" ar "lėtumo".

LIMIT 1, reiškia, kad vykdymas nutraukiamas po pirmo updeito.

O dėl palyginimo, tai papraščiausiai išbandyk, vien iš užklausų niekas neaišku žiūrint iš šono... jau vien matant, kad ID pas tave kažkodėl yra 'string' tipo.

Pasižiūrėk PHP/Apache error log'us.

118

(7 replies, posted in Visa kita)

Atskiri lygindamas ss1/ss2 raktus, o "pagauni" per callback/cancel/accepturl script'ą(-us).

Tai tu sakai, kad pas opera yra specialus kodas, kuris patikrina, jeigu atidarinėja "localhost", tada daron crach(random()) ? (-;

120

(7 replies, posted in Visa kita)

Reiškias skaityk nuo pradžių: https://www.mokejimai.lt/index.php?2901343594