Kad ir kaip būtų keista pirmasis klausimas buvo pats sunkiausias skaitytojams .
1. Kaip sužinoti kiek dienų skiria dvi skirtingas datas pagalba?
Atsakymas į klausimą klausimu! Kiek dienų praėjo nuo mano gimtadienio?

$manoGimtadienis = "2007-08-03";
$skirtumas = round((time() - strtotime($manoGimtadienis)) / 86400);


2. Kuo skiriasi ‘ORDER BY’ nuo ‘GROUP BY’? (SQL)
ORDER BY - rezultatų rūšiavimas pagal tam tikrą stulpelį, kas leidžia surikiuoti tarkim vartotojus pagal jų vardus ar prisijungimo datą ir pan.
GROUP BY - grupuoja rezultatus pagal tam tikrą laukelį. Įsivaizduokite, kad turime tokią labai paprastą atlyginimų lentelę:

darbuotojoID atlgynimoSuma data
1
1200
2
2300
4
1500
2
2000
3
1800
4 1900

Tam, kad sužinotume kiek kiekvienas darbuotojas uždirbo per visą laikotarpį turime iškviesti štai tokią užklausą:
SELECT darbuotojoID, SUM(atlyginimoSuma) as suma FROM atlgynimai GROUP BY darbuotojoID
Ši užklausa prašo pateikti darbuotojo ID ir laukelio `atlyginimoSuma` bendrą sumą prieš tai sugrupavus duomenis pagal ID (t.y. suma skaičiuojama kiekvienam ID atskirai). Rezultatas toks, kokio ir tikimės:

darbuotojoID suma
1 1200
2 4300
3 1800
4 2400

Group BY naudojamas su įvairiomis agregatinėmis funkcijomis, kurių pagalba galime labai patogiai apdoroti gaunamus rezultatus. Apie kitas funkcijas galite paskaityti čia.

3. Kokie versijos kontrolės (CVS) sistemų privalumai ir kodėl turėtume jas naudoti?
CVS (Concurrent Versions System) - versijos kontrolės sistema, leidžia programuotojui ar grupei programuotojų sekti pirminio kodo istoriją arba, kitaip sakant - versijas. Įsivaizduokite, kad turite turinio valdymo sistemą ir ją nuperka Juozas iš firmos UAB "Tokios firmos nėra". Po metų staiga išlenda kažkoks bugas ir Juozas prašo jį ištaisyti. Kaip jį ištaisysite, jeigu dabartinė sistemos versija skiriasi penkiomis versijomis?! Va čia ir pasimato versijos istorijos nauda, nes galite vėl redaguoti tą versiją, kurią turi Juozas.

4. Kuo skiriasi ‘primary key’ nuo ‘unique key’? (SQL)
a) `unique key` gali būti NULL, tačiau `primary key` ne.
b) Lentelės stulpelyje gali būti keli vienodi `unique key` stulpeliai, tačiau tik vienas `primary key` stulpelis.

5. Kokia crypt() funkcijos paskirtis?
Funkcija duomenų skirta šifravimui.

6. Kokiu būdu galime sužinoti paskutinio į MySQL duomenų bazę įterpto įrašo ID?
mysql_insert_id();

7. Kam reikalinga flush() funckija?
Siunčia išvesties duomenis klientui. Tarkime, kad apdorojate didelius kiekius informacijos ir operacija užtrunka apie minutę. Panaudojus ciklą galima viską spausdinti porcijomis, kas vartotojui leis dar nesulaukus galutinės duomenų apdorojimo pabaigos matyti pirmuosius rezultatus. Praktiška!

8. Įsivaizduokime, kad paspaudus “stebuklingą” apsivalymo mygtuką ištrinami visi vartotojai, kurie neprisijungė prie sistemos ilgiau nei metus. Kokiu būdu sužinosime kiek eilučių ištrynėme užklausos metu?
mysql_affected_rows ()

9. Ar galima pagalba prisijungti prie IRC tinklo ir kanale ištarti ‘Labas pasauli!’?
Taip, galima. Panaudojant socket’us.

10. Kodėl nėra dešimto klausimo? Kokiu būdu atsakytumėte į pastarąjį klausimą panaudodami tik - t.y. nenaudojant naršyklės. Įmanoma?
Be abejonės! Galima cURL pagalba siųsti duomenis serveriui, kuris priims mūsų komentarą, jeigu jis korektiškai suformuotas. Žinoma, prieš tai reikėtų išsiaiškinti kokius duomenis komentaro forma siunčia į serverį ir koks dokumentas juos priima. O kaip jūs manot, kodėl Jonuko bloge tiek daug komentarų su žodžiu ‘viagra’?

Atnaujinta 2007.09.06 12:22: Vaidas Žilionis pastebėjo klaidą pirmame atsakyme, ji ištaisyta.
Atnaujinta 2007.09.06 17:28: eligijus pastebėjo klaidą ketvirtame atsakyme, ji ištaisyta.

Panašūs straipsniai


“PHP klausimai #4 (atsakymai)” komentarų: 8

  1. Vaidas Žilionis

    Ar pats ka ra siei tikrinai?

    1. nesamone!

    $manoGimtadienis = "2007-09-02";
    $skirtumas = strtotime(date('y-m-d')) - strtotime($manoGimtadienis);
    echo $skirtumas/(24*60*60);
  2. asterisk

    Šiek tiek geresnis variantas:

    $manoGimtadienis = "2007-08-03";
    $skirtumas = round((time() - strtotime($manoGimtadienis)) / 86400);

    kam naudoti strtotime(date(’y-m-d’)) kai yra time() ? :)

  3. Slave

    my fault :)

  4. eligijus

    4 klausimo b) atsakymas neteisingas. Pagal pateikta atsakymą galima suprasti, kad tarp unikalių įrašų gali būti keli tokie patys. Tai tikrai ne tiesa.

    4.b) atsakymas turėtų būti toks:

    Lentelėje gali būti keli `unique key` stulpeliai, tačiau tik vienas `primary key` stulpelis.

  5. asterisk

    eligijus, atsakymas teisingas, tiesiog neteisingai išreikštas, trūksta žodelio ’stulpeliai’ :)

  6. u-

    Kažkur buvo minėta, jog po dizaino atnaujinimo padarysit galimybę skaityt per RSS pilnus įrašus. Kodėl tai dar nerealizuota?

  7. asterisk

    u-, tai jau realizuota, pasirodo šiek tiek apsigavau su Wordpress funkcionalumu, tačiau dabar bėdų nebeturėtų būti.

  8. u-

    Jo, pastebėjau, šiandien straipsniai readeryje jau pilni.

Rašyti komentarą

Jūs privalote prisijungti jeigu norite rašyti komentarą.