Pereiti prie turinio

Greisis

Nariai
  • Pranešimai

    223
  • Užsiregistravo

  • Lankėsi

  • Atsiliepimai

    0%

Greisis Pranešimai

  1. Iš kurios lentos yra 'status'? 'users'.'adress' yra primary/unique key? Prastas queris tavo, jei kitas žmogus vien tik į query pažiūrėjęs negali suprasti, o turi turėti priėjimą prie schemos.

     

    Suprantama. Čia tik buvo pavyzdis, nerašiau nieko apie taisyklingumą. O „status” yra iš pirmojo „FROM”, t. y. „users”. Taip, sutinku, kad reikėtų nurodyti, bet kaip ir rašiau, tai yra senas skriptas, kuris yra uždarytas ir nenaudojamas dėl optimizavimo / logikos klaidų. „`users`.`adress`” nėra unikalus raktas. Tik „id“ yra, bet jo nereikėjo šioje užklausoje. Prašai vaizdinio pavyzdžio, bet sugebi prisikabinti prie taisyklingumo. Tikriausiai smagu „pulti“ vieną žmogų​ keliems, bet nesureikšminu. Lol. ^_^

  2. Parodyk ne ad hoc query kokį nors, kad būtų keletas join'ų, sub query'ių, dar ko nors, tai bus aiškiau, kas skaitosi, o kas ne :/

     

    Žinoma. Viskas gerai persiskaito, bet kiti mėgsta daryti išvadas iš anksto.

     

    http://image.prntscr.com/image/a965a49205f94041a0662090d108cd09.png

     

    Jeigu neryški nuotrauka, tai tiesioginė nuoroda čia:

     

    Ekrano užfiksavimas

     

    Iš seno skripto suradau.

  3. Sveiki,

     

    Ar lankėte kas Vilnius Coding School organizuojamus programavimo kursus Vilniuje arba kitame mieste? Kokie atsiliepimai? Arba gal kas lankėte kitus kursus ir galite rekomenduoti?

     

    Rekomenduoju mokytis pačiam, o ne eiti į kursus. Šia tema jau buvo diskutuota, Jums tik naujas temas kurti. Reikėtų truputį pasižvalgyti po forumą.

  4. Panašu, kad tai, ką nori atlikti, vadinasi Captive Portal. Padaryti įmanoma, bet informacijos nėra daug. Panašu, kad reikia nusi'root'inti prietaisą ir po to pažaisti su Android'o Linux'iniais viduriais.

     

    Tavo pateikta aplikacija veikia ne ant visų įrenginių. O „Root” yra tik tiems, kurie išmano kaip elgtis. Tai gan pavojingas dalykas. + „Android” sistemos kodo geriau nekeisti, nes gali labai lengvai paversti įrenginį į „plytą”, kartais ir nepataisomai („Flash Stock ROM” nepadėtų). =]

  5. Nereikia matyti darbų, man tiesiog užtenka matyti pasipūtimą ir aišku kad nesi dirbęs komandoje ar prie didesnio projekto kur reikia bendrauti su kolegomis ir/ar daręs code review.

     

    Ir taipogi nieko asmeniško, pats kadaise dariau lygiai tą patį. Bet sakydamas nieko asmeniško sugebėjai prisikabinti prie parašo. Žinau kad gražus, ačiū. Apie 2012 metais firma sumanė kad bus lengviau gauti PCI sertifikaciją jei galės pasakyti kad pagrindiniai developeriai turi Zend ir Oracle sertifikatus, na ir teko laikyti.

     

    Jau kurį laiką dirbu prie savo gan rimto projekto, jau kažkur apie 3 metus. Projektas bus automatizuotas. Nepažįsti manęs ir darai tokias išvadas, o vėliau automatiškai suklysti. ^_^ Negalima spręsti iš žmogaus charakterio jo sugebėjimus, kadangi sprendimas bus neteisingas.

     

    Galbūt ir galėčiau dirbti komandoje, bet... daug kas neatitinka mano reikalavimų. Ir taip, nelabai galima pasitikėti žmonėmis šiais laikais, žinai, yra daug „lamų”. ;)

     

    Jam tik +- 16m. Tad tavo pasakytas "junior" puikiai jam tinka. Ir net nėra ką šnekėti apie darbą komandoje, bendravimą etc. O ir neprašovei su arogancija ir pasipūtimu, dar pridėčiau narcisizmą, paskaičius jo žinutes kitose temose. :)

     

    Ačiū, bet lyg nuomonės neprašiau. + Prieš rašant kritiką, prašome pateikti argumentus, kitu atveju - ji neturi jokios reikšmės.

     

    O pabaigai: „Amžius tėra tik skaičius, kuris neparodo nei žmogaus proto, nei jo požiūrio į gyvenimą.”

  6. Patikrink su daug įrašų, tada kažką sakyk kad nepagal paskirtį ;D

     

    Pasidomėjau apie tai, taip, mysqli_num_rows tikrai lėtesnis, kai duomenų bazėje labai daug įrašų. Mhm, keista, net nežinojau. Buvau naudojęs COUNT funkciją tik su MySQL, bet kai perėjau į objektinį MySQLi, tai kažkaip ją užmiršau. Visada kažką naujo išmokstame. ;)

  7. Jei num_rows reikia tai ant mysql geriau, fetch_row -> count(id) atrodo bus geriausias variantas ir greičiausias B-)

     

    Nesutikčiau. ;) Jeigu rezultatų nėra, tai iškarto bus klaida, todėl prieš while reikia patikrinti ar yra rezultatų, t. y. daugiau už nulį.

     

    Be to, mysqli_num_rows nereikia ciklo. :)

  8. Panašu, kad turim naują Ramūną.

     

    PS: Program optimization: When to optimize

     

    Ką turi omenyje, rašydamas naujas Ramūnas? Kalbos tiklsumas.

     

    ... Aš tau žodį, o tu man dvidešimt. Mano pataisymuose buvo minimalus optimizavimas, nieko čia ypatingo. Parašiau tai, ką visi turėtų žinoti, o tu kaip iškritęs iš medžio, kartoji visiškai nesusijusius straipsnius.

     

    Eik pasiskaityti programavimo dokumentacijos, nes kaip matau, tavo žinios yra pasenusios.

     

    Kaip gerai, kad yra tokių kurie žino kaip dar geriau padaryt ^_^

     

    Visada vietoj *, galima pakeist į id, ir bus optimaliau :ph34r:

     

    Sutinku. Čia labai patogu su funkcija mysqli_num_rows.

  9. Greisis šaunu kad bandai padėti žmonėms bet pats esi dar junioras ir patarčiau nesisvaidyti apibendrinimais "siauras mąstymas", "griežtai draudžiama", "tinginiai", "nesiginčyk su manimi, nes nelaimėsi". Labai neprofesionalu ir arogantiška - just tone it down a bit.

     

    Nesi matęs mano darbų, tad nedrįsčiau vadinti Junior. =] O tas ekrano užfiksavimas buvo tiesiog pavyzdys, nieko asmeniško.

     

    Be to, gražus parašas.

     

    Asmeniškai negaisčiau tokiems dalykams, kadangi žinių neparodo. :rolleyes:

     

    http://image.prntscr.com/image/dcb0eced82394e9f990ec3413717ecaf.png

  10. Tai kad bergždžias reikalas su tavim ginčytis, kai tau vien galvoj optimizacija. Žmogus matyt daro kokį laboratorinį darbą, o tu apie Facebook'us kalbi.

     

    Žmonės pirma paprofiliuoja kodą ir tik tada nusprendžia, ar vertą kažką optimizuoti. O tu nusprendei net nežinodamas kas per projektas…

     

    Su SELECT * dar bent jau normalus patarimas, nes vis dėl to nekokia praktika. Bet su tuo kintamuoju tai… Ką tas kintamasis sutaupys, 1 ns? Kiek iš viso laiko bus sutaupyta per tuos 53 paleidimus, kurių prireiks, kad žmogus pabaigtų rašyti kodą ir atsisakytų laboratorinį darbą? 53 ns? Gerai kad dar Assembler'iu nepasiūlei perrašyti…

     

    Ką žinau, man tai taip užklausos kodas geriau skaitosi:

    $getMostPopularCategory = 
       "SELECT `kategorija` 
        FROM `logistas` 
        GROUP BY `kategorija` 
        ORDER BY COUNT(`kategorija`) 
        DESC LIMIT 1;";
    
    $menurez = $this->conn->query(getMostPopularCategory);
    

     

    Aš esu toks žmogus, kuris visada siekia tobulumo. O nesuprantu, kodėl yra blogai galvoti apie optimizavimą. Tai puiku, jeigu daro laboratorinį darbą, dėstytoją manau nustebintų toks taisyklingas darbas.

     

    „Žmonės pirma paprofiliuoja kodą ir tik tada nusprendžia, ar vertą kažką optimizuoti. O tu nusprendei net nežinodamas kas per projektas…” - nusišnekėjai, kad net nejaukiai pasijutau. Žmonės pirmiausiai rašo kodą ir iškarto optimizuoja, bent jau turėtų taip būti. Juk neparašom kažkokios nesąmonės ir vėliau taisome. Gal vėliau, dar galima kažką papildyti, analizuojant kodą.

     

    „Bet su tuo kintamuoju tai… Ką tas kintamasis sutaupys, 1 ns?” - žinai, yra toks žinomas posakis: „Lašas po lašo ir akmenį pratašo”. Kaip manai, kiek kartų vidutiniškai projektas kreipiasi į duomenų bazę? Tarkim 10 kartų, bent jau čia minimaliai, tai sukuri  10 visiškai nereikalingų kintamųjų su dideliu turiniu. Tavo mąstymas yra toks siauras, kad graudu darosi. Tikiuosi niekam neatlieki programavimo darbų, kadangi tektų viską iš naujo perrašyti, kitam vyr. programuotojui.

     

    „Su SELECT * dar bent jau normalus patarimas, nes vis dėl to nekokia praktika.” - dar pamiršai paminėti mysqli_close, kadangi privalai uždaryti bet kokį sujungimą, priešingu atveju, puslapio krovimosi ilgis padidės netik milisekundėmis. Tai irgi buvau pabrėžęs. =]

     

    Įdomu, ką dabar parašysi (rekomenduoju nerašyti). :rolleyes:

     

    Be to, kažką sakei apie gražumą? <_<

     

    http://image.prntscr.com/image/d25d3013db3845d8975cd8d684c8afcb.png

     

    ^_^

  11. Jeigu connection objektas bus null, kompiliatorius klaida tik išmes ir nuluš viskas. Čia tavo pavzydyje nėra šansų, kad taip būtų, bet jai projektas didžiulis tai dažnai taip būna.

     

    Galima įdėti tikrinimus, jei pageidaujate. Nematau šio pranešimo tikslo. Jei sujungimas nepavyks, tai visas skriptas savaime neveiks - critical error, nemanau, kad gali kažką padaryti specialaus. Kai sujungi duomenų bazę, galima tiesiog patikrinti sujungimą.

     

    Bet jeigu optimizuotas kodas, tai tokie pranešimai bus reti. Žinoma, dar reikia turėti galingą serverį.

  12. Is premature optimization really the root of all evil?

     

    Tiksliai nežinau kokio čia dydžio projektas, bet jeigu optimizuojat SQL užklausas duombazėm su 20 įrašų ar netgi string'ų žūt būt nepriskirinėjat kintamiesiems, tai jau panašu į priešlaikį optimizavimą (arba norą pasirodyti).

     

    Be to, PHP iš tiesų tokia nevykus, kad keli papildomi kintamieji sukelia pastebimą spartos sumažėjimą? Aš kaip tik sakyčiau, kad geriau priskirti užklausą kintamajam, o patį užklausos tekstą parašyti per kelias eilutes, kad būtų lengviau skaityti.

     

    Kai tu parašysi, tai verkti norisi. Ten elementarus, taisyklingas SQL kodas, koks ir turėtų būti rašomas. Dauguma žmonių yra tinginiai (primeni man į tokį), taip paskui ir iškraipo informaciją, o naujokams rodomas netinkamas pavyzdis.

     

    Aha, privelk tokių klaidų visuose failuose, tai efektai bus tokie žymūs, kad teks pirkti galingesnį serverį, tikriausiai ir nori išleisti pinigus. Vėliau verkia, kad PHP nėra graži, taisyklinga (palyginus su kt. programavimo kalbomis), o apie 60 - 70% programuotojų (jei taip galima pavadinti), nesugeba net taisyklingai parašyti kodą, kodas pagrinde rašomas, kad tik veiktų, neatsižvelgiant į optimizaciją (įsk. micro, jos sudeda pakankamai sekundžių, jei projektas didelis, o Facebook geras pavyzdys, daug sumokėjo, norint ištaisyti tas klaidas). Dar net kiti nemoka HTML4, HTML5 rašyti taisyklingai, o naršyklės pačios turi taisyti snarglių kodą.

     

    Tarp kita ko, žinai bent kintamųjų reikšmę ir jų tikslą? Tas kintamasis eis po visą skriptą, nors nebus naudojamas. O dėl grožio, tai galime ginčytis. Galėsiu atsiųsti ekrano užfiksavimą, kaip gražiai kodas atrodo.

     

    Nesiginčyk su manimi, nes nelaimėsi. Pateikdamas straipsnius, kurie bando pateisinti žinių trūkumą, tau tiesiog nepadės. B-)

  13. Nemanau, kad gausi gerų patarimų iš čia, todėl pateikiu kelias naudingas nuorodas, kurios galbūt tau pravers. Žinoma, visi straipsniai yra parašyti anglų kalba.

     

    1. http://www.wikihow.com/Overcome-Public-Restroom-Embarrassment
    2. http://www.uncommonhelp.me/articles/how-to-stop-shy-bladder-syndrome/
    3. http://ask.metafilter.com/11324/How-can-you-overcome-pee-shyness-in-public-urinals - Forumas, kur žmonės diskutavo apie tai (žymiai daugiau patarimų).
    4. http://www.embarrassingproblems.com/problem/urination-shyness

     

    Ši problema yra gan sunki, tad prireiks daug ryžto. ;)

  14. "SELECT kategorija FROM logistas GROUP BY kategorija ORDER BY count(kategorija) DESC LIMIT 5;"

     

    Stulpelio kiekvienoj eilutej tik po viena žodį ir daugelis jų kartojasi, COUNT, jog rikiuotų pagal vienodų įrašų kiekį. Distinct tik ištryniau. rolleyes.gif

     

    OK, žiūrėk kaip tau geriau. Nežinau kategorijos tipo, todėl ir parinkau tokį kodą.

  15. O jeigu man reikia visko? :huh:

     

    Nesvarbu, lenteles turi nurodyti individualiai. Ta funkcija yra tiesiog lėta, nes turi dar patikrinti kiek yra lentelių, gauti jų pavadinimus ir t. t. Negi sunku daugiau parašyti?

     

    Be to, kam autorius sukuria naują kintamąjį, kuris visiškai nereikalingas? SQL kodą rašykite iškarto į funkciją, o ne sukurkite naują kintamąjį, tiesiog apkraunate nereikalingai variklį.

     

    Pataisau šį kodą ir parodau kaip pavyzdį.

     

    $menurez = $this->conn->query("SELECT `kategorija` FROM `logistas` GROUP BY `kategorija` ORDER BY COUNT(`kategorija`) DESC LIMIT 1;");

     

    Gale nebūtinas kabliataškis (SQL kode, jeigu pastebėjote), bet oficialus PHPMyAdmin prideda prie pabaigos, tad rekomenduoju irgi jį pridėti (taisyklingiau bus).

     

    Redagavimas: dar nesupratau vieno dalyko, kodėl buvo panaudota COUNT funkcija? Taip pat, ORDER BY turėtų būti data arba skaičius, nežinau, kokio tipo ta kategorija. Šiuo atveju, parenku `id` atributą.

     

    Pastebėjau, kad gale nėra uždarymo funkcijos. Kai pasiimi kažką iš lentelės, po bet kokios MySQLi funkcijos, visada uždaryk sesiją. HTML kabutes nekeisk. Jos rašomos dvigubomis kabutėmis, o ne viengubomis. Matau, nuorodoje nurodai $_GET['kat'] atributą, nemanai, kad jis turėtų būti ID (skaičiais nurodytas)? Kaip rašiau, nežinau, koks kategorijos tipas, varchar ar int, bet jei varchar, rekomenduoju naudoti ID. Reikėtų pridėti: SELECT `id`, `kategorija`, o tada $row[0] nuorodoje palikti, o nuorodos tekste pakeisti į $row[1].

     

    Galinis kodas:

     

    $menurez = $this->conn->query("SELECT `kategorija` FROM `logistas` GROUP BY `kategorija` ORDER BY COUNT(`kategorija`) DESC LIMIT 1;");
    
    if ($menurez->num_rows > 0) {
    while ($row = $menurez->fetch_row()) {
    	echo '<ul><li><a href="index.php?kat='.$row[0].'">'.$row[0].'</a></li></ul>';
           }
    } else {
    echo 'Rezultatų nėra.';
    }
    
    $menurez->close();
    

     

    Pridėjau atgal COUNT(`kategorija`).

×
×
  • Pasirinkite naujai kuriamo turinio tipą...