MediaWiki API result

This is the HTML representation of the JSON format. HTML is good for debugging, but is unsuitable for application use.

Specify the format parameter to change the output format. To see the non-HTML representation of the JSON format, set format=json.

See the complete documentation, or the API help for more information.

{
    "batchcomplete": "",
    "continue": {
        "gapcontinue": "SMB_ja_NetBIOS",
        "continue": "gapcontinue||"
    },
    "warnings": {
        "main": {
            "*": "Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/postorius/lists/mediawiki-api-announce.lists.wikimedia.org/> for notice of API deprecations and breaking changes."
        },
        "revisions": {
            "*": "Because \"rvslots\" was not specified, a legacy format has been used for the output. This format is deprecated, and in the future the new format will always be used."
        }
    },
    "query": {
        "pages": {
            "1911": {
                "pageid": 1911,
                "ns": 0,
                "title": "Reeglid",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "<accesscontrol>ahvid</accesscontrol>\n\nSiia v\u00f5iks \u00fcheskoos siis mingid foorumi \u00fcldreeglid kokku koguda!\n\n\n\n\nHinnavaatluse foorumi kasutajale:\n\n* '''Enne uue teema algatamist loe varasemaid postitusi ja/v\u00f5i kasuta otsingut! !'''Kui tunned siiski, et vaja veel midagi lisaks k\u00fcsida/kommenteerida, tee seda v\u00f5imaluse korral, juba olemasolevas teemas!  Keegi ei tahagi et sa k\u00f5ikm\u00f5eldavad m\u00e4rks\u00f5nad l\u00e4bi prooviksid v\u00f5i kogu foorumi l\u00e4bi loeksid, p\u00f5gusast otsingust \u00fcldjuhul piisab. N\u00e4iteks kui sul on mure, et arvuti ei m\u00e4ngi mp3-e siis pole ju raske otsingureale \"mp3\" kirjutada? Otsingut kasutamata tehtud korduvteemad l\u00e4hevad \u00fcldjuhul lukku ja p\u00e4rast kustutamisele. Kui tunned siiski, et vaja veel midagi lisaks k\u00fcsida/kommenteerida, tee seda v\u00f5imaluse korral, juba olemasolevas teemas! \n\n* '''\u00c4ra l\u00e4butse!''' Kui teema ei sisalda konkreetset k\u00fcsimust/probleemi ja/v\u00f5i teemas pole piisavalt asjalikku sisu, kustutatakse see ette hoiatamata\n* '''Tee teema pealkiri sisule vastav!''' Teemad pealkirjadega nagu \"aidake mind...\" ja \"Appi! J\u00e4me jama\" ei ole teretulnud.\n\n* '''\u00c4ra tekita \"fleimi\"''' . Teemade nagu win vs. linux koht on v\u00f5itlustanneris, mitte siin. Kui sa oled linuxiga h\u00e4das ja k\u00fcsid siit abi \u00e4ra kirjuta l\u00f5ppu: \"krt selle linuxiga on ikka igavene jama k\u00fcll, kahju et ta nii arenenud ja kasutajas\u00f5bralik s\u00fcsteem ei ole kui windows\". See tekitab ainult sisutut fleimi ja offtopicut.\n\n* '''M\u00e4rgi \u00e4ra andmed oma arvuti kohta!''' Siin on v\u00e4he selgeltn\u00e4gijaid kes \u00fctlemata aru saavad mis seadmed sul arvutikasti sees olemas. \u00c4ra unusta lisamast ka operatsioonis\u00fcsteemi ning muud abistavat infot muret tekitava tarkvara kohta.\n\n* '''\u00c4ra tee asjatuid teemasid!''' N\u00e4idis olukord: Kodanik X'il on probleem ja ta teeb Tarkvara alafoorumisse uue teema oma probleemi kohta.\nPostitus 1:\n''Mul on probleem... Vajutan k\u00fcll l\u00fclitit ent arvuti t\u00f6\u00f6le ikkagi ei hakka.'' <br>\nPostitus 2:\n''Ah sain juba korda, toitejuhe oli taha \u00fchendamata.''\n\nPalun v\u00e4ltige selliseid teemasid. Kui leidsid ise lahenduse oma suhteliselt spetsiifilisele probleemile, millest suure t\u00f5en\u00e4osusega teistel palju kasu ei ole saad teema oma esimest postitust kustutades pr\u00fcgikasti suunata.\n\n*'''Keelatud on rassistlikud, vaenu \u00f5hutavad, seksistlikud, halvustavad ja piraatlust propageerivad teemad!'''\n\n*'''Administraatoritel ja moderaatoritel on \u00f5igus teemasid sulgeda ja postitusi kustutada ettehoiatamata! '''\n\n*Keelatud on esitada avalikult \u00fcleskutseid v\u00e4givallale, kontrollimata (arvatavaid) isikuandmeid ja muid andmeid/\u00fcleskutseid, mis on kehtiva seadusandlusega vastuolus.\n\n* Kas on vaja teksti suurusi asjatult muuta? LAHE v\u00f5i <small>jama</small> M\u00f5elge enne j\u00e4rgi, kui seda teete.\n\n* Palun mitte kommenteerida, kui pole midagi targemat \u00f6elda, kui thumbs_up.gif , icon_biggrin.gif , icon_cool.gif. Taolised postitused n\u00e4itavad kasutaja IQ taset ja kuuluvad kustutamisele.\n\n*Oleks v\u00e4ga arukas meeles pidada, et Hinnavaatluse foorumis, EI t\u00f5statata teemasid kriminaalseks, illegaalseks ja/v\u00f5i ebaeetiliseks kvalifitseeruvate tegevuste (cracking, phishing, DoS, DDoS, SPAMing, identiteedivargused, varastatud identiteedi kasutamine jne.) kohta ! Siia hulka kuuluvad ka MISTAHES k\u00fcsimused Sinule MITTEkuuluvale arvutiv\u00f5rgule v. arvutustehnikale seatud tehnilis-administratiivsetest piirangutest m\u00f6\u00f6da hiilimise kohta !\n\n*V\u00f5ta vaevaks lugeda [http://linux.ee/~kala/smart-questions.html Targa K\u00fcsimise Juhend]\n\n\n\n\n'''PS: Arutelu v\u00f5iks koguda sellesama lehe allosasse. Kahjuks spets arutelu lehek\u00fclge soovimatute pilkude eest kaitsta ei saa'''\n\n//Sai algatuseks \u00fcsna vaba pilguga pea k\u00f5igist alafoorumitest reeglite katkeid kokku kogutud. Alustuseks olekski ehk m\u00f5istlik ajur\u00fcnnaku stiilis v\u00f5imalikult mahukas mustand kokku kirjutada. Kustutada annab ebasobivaid punkte ju kiiresti ;) Kindlasti annaks praegugi midagi ka \u00fche punkti alla viia v\u00f5i siis l\u00e4bi mitme punkti lahti seletada. [[Kasutaja:Taifunk|Taifunk]] 7. november 2006, kell 20.51 (EET)"
                    }
                ]
            },
            "1919": {
                "pageid": 1919,
                "ns": 0,
                "title": "Rekursioon",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "Programmeerimises nimetatakse '''rekursiooniks''' seda, kui funktsioon kutsub v\u00e4lja iseennast.\nJ\u00e4rgnevalt on toodud kaks n\u00e4idet rekursiooni kasutamise kohta:\n\n* [[#Kanooniline n\u00e4ide: faktoriaali arvutamine|Kanooniline n\u00e4ide: faktoriaali arvutamine]] - sobib lugemiseks neile, kes on v\u00e4he matemaatikalembesed,\n* [[#Praktiline n\u00e4ide: Puukujulise men\u00fc\u00fc kuvamine andmebaasist|Praktiline n\u00e4ide: Puukujulise men\u00fc\u00fc kuvamine andmebaasist]]\n\n== Kanooniline n\u00e4ide: faktoriaali arvutamine ==\n\nSageli tutvustatakse rekursiooni faktoriaali arvutamise n\u00e4itel.\nArvu <var>n</var> faktoriaal (<var>n</var>!) on defineeritud j\u00e4rgnevalt:\n\n: <var>n</var>! = 1 &middot; 2 &middot; 3 &middot; ... &middot; <var>n</var>\n\nN\u00e4iteks arvu 3 faktoriaal on:\n\n: 3! = 1 &middot; 2 &middot; 3 = 6\n\nJa arvu 4 faktoriaal on:\n\n: 4! = 1 &middot; 2 &middot; 3 &middot; 4 = 24\n\nKui me sedasi nende faktoriaalide arvutamist j\u00e4tkame, siis m\u00e4rkame, et j\u00e4rgmise arvu faktoriaali saame kergesti k\u00e4tte, kui teame talle eelneva arvu faktoriaali. N\u00e4iteks arvu 5 faktoriaali arvutamine muutub tublisti lihtsamaks kui tema arvu 4 faktoriaali:\n\n: 5! = 4! &middot; 5 = 120\n\nSeega v\u00f5ime n\u00fc\u00fcd defineerida, et et arvu <var>n</var> faktoriaal on arvu <var>n</var> enda ja talle eelneva arvu faktoriaali korrutis (v\u00e4lja arvatud see juhtum, et arvu 1 faktoriaaliks on alati 1). Ehk matemaatiliselt v\u00e4ljendudes:\n\n: <var>n</var>! = 1, kui <var>n</var> = 1\n: <var>n</var>! = (<var>n</var> - 1)! &middot; <var>n</var>, kui <var>n</var> > 1\n\nSiin definitsioonis aga ongi meil juba rekursioon - defineerimaks faktoriaali olemust, kasutame me faktoriaali ennast.\n\nSelle matemaatilise definitsiooni p\u00f5hjal saame me n\u00fc\u00fcd kirjutada faktoriaali arvutava funktsiooni m\u00f5nes programmeerimiskeeles:\n\n  function faktoriaal(n) {\n      if (n == 1)\n          return 1;\n      else\n          return faktoriaal(n-1) * n;\n   }\n\nSelleks, et saada aimu, mida rekursiooniga ka praktikas peale hakata (eeldades, et faktoriaalide arvutamine pole su igap\u00e4evaleib), loe edase ka j\u00e4rgmist n\u00e4idet.\n\n== Praktiline n\u00e4ide: Puukujulise men\u00fc\u00fc kuvamine andmebaasist ==\n\nOlgu meil \u00fcks aiasaadusi vahendav veebileht, millel on selline\npuukujuline \u00fclesehitus:\n\n* Kaubad\n** Juurviljad\n*** Porgand\n*** Peet\n*** Kaalikas\n** Puuviljad\n*** \u00d5un\n*** Pirn\n* M\u00fc\u00fcgipunktid\n** Tallinnas\n** Tartus\n** P\u00e4rnus\n\nM\u00f5istagi on k\u00f5ik need andmed salvestatud andmebaasi tabelisse:\n\n{| border=\"1\"\n! id\n! nimi\n! parent_id\n|-\n| 1\n| Kaubad\n| 0\n|-\n| 2\n| Juurviljad\n| 1\n|-\n| 3\n| Porgand\n| 2\n|-\n| 4\n| Peet        \n| 2\n|-\n| 5\n| Kaalikas    \n| 2\n|-\n| 6\n| Puuviljad   \n| 1\n|-\n| 7\n| \u00d5un         \n| 6\n|-\n| 8\n| Pirn        \n| 6\n|-\n| 9\n| M\u00fc\u00fcgipunktid\n| 0\n|-\n| 10\n| Tallinnas   \n| 9\n|-\n| 11\n| Tartus      \n| 9\n|-\n| 12\n| P\u00e4rnus      \n| 9\n|}\n\nSee on k\u00f5ige levinum ja lihtsam meetod puukujuliste andmete andmebaasi\nsalvestamiseks ning enamasti sellisest lihtsast struktuurist ka\npiisab.\n\nNagu n\u00e4ha, siis on lisaks v\u00e4ljadele ''id'' ja ''nimi'' ka v\u00e4li\n''parent_id'', mis viitab selle rea ''id''-le mille alla rida kuulub.\nN\u00e4iteks Pirni ''parent_id'' on 6, seega kuulub ta Puuviljade\nkategooriasse, mille ''id''-ks on 6.  Samuti on siit selgelt n\u00e4ha, et\nPuuviljade alla kuuluvad veel ka \u00f5un ja pirn, mille ''parent_id'' on\nsamuti 6. Puuviljade ''parent_id'' on aga 1, mist\u00f5ttu puuviljad k\u00e4ivad\nomakorda Kaupade alla.  Kaupade ''parent_id'' on aga 0, mis\nt\u00e4hendab, et tegemist on k\u00f5ige \u00fclemise taseme kategooriaga, mis enam\nmillegi alla ei kuulu.\n\nEelnevalt esitatud k\u00fcsimusi saab lihtsalt esitada ka SQL-is.  N\u00e4iteks\nv\u00f5ime k\u00fcsida, mis asjad kuuluvad Puuviljade (''id'' = 6)\nkategooriasse:\n\n  SELECT * FROM menyy WHERE parent_id = 6;\n\nNing andmebaas vastab meile:\n\n{| border=\"1\"\n! id\n! nimi\n! parent_id\n|-\n| 7\n| \u00d5un         \n| 6\n|-\n| 8\n| Pirn        \n| 6\n|}\n\nV\u00f5i siis, et kuhu kuuluvad Puuviljad (''parent_id'' = 1) ise:\n\n  SELECT * FROM menyy WHERE id = 1;\n\nJa saame vastuseks:\n\n{| border=\"1\"\n! id\n! nimi\n! parent_id\n|-\n| 1\n| Kaubad\n| 0\n|}\n\nNojah, sellised p\u00e4ringud on muidugi lihtsad, kuid kuidas saaksime kogu\nselle tabeli ilusasti puukujuliselt v\u00e4ljastada.  Alustame k\u00f5igepealt\nsellest, et kirjutame endale v\u00e4ikese abifunktsiooni, mis tagastab\nmeile massiivi men\u00fc\u00fcelementidega, millel on sama ''parent_id'':\n\n<pre>\nfunction get_children($parent_id) {\n    $r = mysql_query(\"SELECT * FROM menyy WHERE parent_id = $parent_id\");\n    $children = array();\n    while ($row = mysql_fetch_array($r)) {\n        $children[] = $row;\n    }\n    return $children[];\n}\n</pre>\n\nN\u00fc\u00fcd on k\u00f5ik meie j\u00e4rgnev vaev juba tublisti lihtsustatud.  K\u00f5igepealt\nv\u00e4ljastame k\u00f5ige k\u00f5rgema tasandi kategooriad - see peaks olema lihtne.\nOn meil ju teada, et k\u00f5igi \u00fclemisel tasandil olevate asjade\n''parent_id'' on alati 0.  Seega saame kirjutada j\u00e4rgmise PHP\nfunktsiooni:\n\n<pre>\nfunction print_menu() {\n    foreach (get_children(0) as $child) {\n        echo $child[\"nimi\"].\"\\n\";\n    }\n}\n</pre>\n\nVahva. N\u00fc\u00fcd v\u00e4ljastame ka j\u00e4rgmise tasandi men\u00fc\u00fcelemendid. Kusjuures\nnendele alamelementidele prindime ette v\u00e4ikese t\u00fchiku:\n\n<pre>\nfunction print_menu() {\n    foreach (get_children(0) as $child) {\n        echo $child[\"nimi\"].\"\\n\";\n        foreach (get_children($child[\"id\"]) as $child2) {\n            echo \" \".$child2[\"nimi\"].\"\\n\";\n        }\n    }\n}\n</pre>\n\nNoh, ja n\u00fc\u00fcd ka kolmas tasand:\n\n<pre>\nfunction print_menu() {\n    foreach (get_children(0) as $child) {\n        echo $child[\"nimi\"].\"\\n\";\n        foreach (get_children($child[\"id\"]) as $child2) {\n            echo \" \".$child2[\"nimi\"].\"\\n\";\n            foreach (get_children($child2[\"id\"]) as $child3) {\n                echo \"  \".$child3[\"nimi\"].\"\\n\";\n            }\n        }\n    }\n}\n</pre>\n\nKuna aga meie men\u00fc\u00fckesel ongi vaid kolm tasandit, siis ongi valmis!\n\nAga kui me ei tea ette kui palju meie men\u00fc\u00fcs neid tasemeid on?  Mingi\ntuhandetasemelise men\u00fc\u00fc jaoks sellise koodi kirjutamine oleks juba\n\u00e4\u00e4retult t\u00fc\u00fctu.  Lisaks poleks see kood just eriti ilus.  \u00d5igupoolest\npole see juba praegu seda.  Seal on sees mingid tobedad kordused ja\nneed muutujanimed - $child, $child2, $child3 - need pole kah kellegi\nasi.  Ja kui me siis peale selle koodi kirjutamist otsustame, et\ntahame t\u00fchikute asemel v\u00e4ljastada hoopis t\u00e4rne, siis peame seda muutma\nigal men\u00fc\u00fctaseme puhul eraldi!  Siin peab olema mingi parem moodus.\n\nJa t\u00f5esti. Siin tulebki meile appi rekursioon.  Selle asemel et\nforeach'i sisse l\u00f5putult foreach'e toppida, p\u00f6\u00f6rdume hoopis sellesama\nprint_menu() funktsiooni poole:\n\n<pre>\nfunction print_menu($parent_id) {\n    foreach (get_children($parent_id) as $child) {\n        echo $child[\"nimi\"].\"\\n\";\n        print_menu($child[\"id\"]);\n    }\n}\n</pre>\n\nMnjaa.. see toimib, aga n\u00fc\u00fcd ei saa me enam print_menu() funktsiooni\nv\u00e4lja kutsuda ilma, et me talle argumendi '0' ette annaksime.  \u00d5nneks\nsaab selle probleemi lahendada, kui m\u00e4\u00e4rame $parent_id v\u00e4\u00e4rtuseks\nvaikimisi 0:\n\n<pre>\nfunction print_menu($parent_id=0) {\n</pre>\n\nNii... aga vahepeal l\u00e4ks t\u00e4ielikult kaduma ka meie tore treppimine.\nKuid ka see mure on lihtsalt lahendatav.  Me ju tahame v\u00e4lja printida\nt\u00e4pselt nii palju t\u00fchikuid, kui mitmendal tasandil me parajasti oleme,\nseega anname lihtsalt kaasa veel \u00fche parameetri, mida ma igal\nalamtasandile suundumisel suurendame:\n\n<pre>\nfunction print_menu($parent_id=0, $level=0) {\n    foreach (get_children($parent_id) as $child) {\n        // arvutame v\u00e4lja taande (0 tasandil on taane \"\")\n        $taane = str_repeat(\" \", $level);\n        \n        echo $taane . $child[\"nimi\"].\"\\n\";\n        print_menu($child[\"id\"], $level+1);\n    }\n}\n</pre>\n\nTaraa... ja ongi valmis.  Ja ei mingeid foreache foreachide sees.\nK\u00f5ik t\u00e4nu rekursioonile."
                    }
                ]
            }
        }
    }
}