anonīms Posted April 5, 2009 Report Posted April 5, 2009 Varbūt kādam ir aizķēries kāds skirpts, kas uzskaita cik apmeklētāju ir bijuši vienas dienas laikā? googlēju, hotscripts skatijos, bet neko neatradu. Quote
Grey_Wolf Posted April 5, 2009 Report Posted April 5, 2009 ja izmanto DB, tad vari dariit taa: izveidot tabulinu ar laukiem ID|IP|datums_laiks| un vedot sessiju kur: parbaudi vai apmekletajs ==true vai nee ja nav tad ieraksti DB, IP un laiku, pec tam sesiijaa ieliec true ... talak jau nav seviskjas problema dabuut apmekletaju skaitu, gan par konreto dienu gan stundu utt.. --- Neaizmirsti ka IP Db glabaa kaa INT ----------- P.S. Hostskriptos ir N-tie skripti kas ljauj uzskaitiit apmekletajus , gan pavisam vienkarshi gan sarezgjiiti ... Quote
bubu Posted April 5, 2009 Report Posted April 5, 2009 Interneta adrese IPv4 formā aizņem precīzi 4 baitus - tieši tik cik INT lauks nodrošina (pariezāk gan būtu lietot UNSIGNED INT). Punkti ir tikai cilvēkam "draudzīgajā" pierakstā, kur katrs baits ir pierakstīts decimālajā sistēmā, un šie baiti atdalīti ar punktiem. Labums no tā visa ir, ka INT aizņems mazāk vietas datubāzē, kā arī tu varēsi lietot salīdzināšanas operatorus starp tiem, piemēram < vai >, kā arī kārtošanu normālā kārtībā. Tajā "draudzīgajā" pierakstā tu to nevarēsi. Quote
Grey_Wolf Posted April 6, 2009 Report Posted April 6, 2009 anonīms --> IP adreses Visur glabaajas INT formataa... Db un PHP pat ir specialas f-jas konvertesanai INET_ATON() parversanai IP uz INT $apm_ip=$_SERVER['REMOTE_ADDR']; INSERT INTO conteris SET ip =INET_ATON('$apm_ip') un nolasiisaina INET_NTOA() no INT uz IP SELECT INET_NTOA(ip) AS gatavs_ip FROM conteris Quote
anonīms Posted April 7, 2009 Author Report Posted April 7, 2009 a kuru tipu labāk būtu izmantot pie datuma? timestamp? Quote
Grey_Wolf Posted April 7, 2009 Report Posted April 7, 2009 (edited) a kuru tipu labāk būtu izmantot pie datuma? Datubaazes izmanto Konkretas DB datua tipu Mysql tie ir 3 veidi Date --> tikai datums Time --> pulkstenja laiks DateTime --> abi kopaa.. Izmantojot konkretaas DB datuma laukus iegust sadus plusus 1. Ljoti daudz gatavu (iebuvetu) f-ju datuma atlasiishanai( pec dienas menesa gada, stundas , minutes, sekundes), iespeja paprasiit visus ierakstus kas Vecaki/ jaunaki par noteikto laiku (nav nekas jarekjina .... 2. f-jas datuma formatesana , liidzigi kaa PHP data() ( princips ir gandriiz identisks) 3. izvairamies no kljudas ja jasaglabaa datums ka vecaks par 1970.01.01 ( teiksim dzimsanas datumus) 4. ieraksta laiku var piefikseet arii ar NOW() --> ieraksta izdarisanas laiks --- galvenaa, un viena no noteicosam, ir iespeja izvairiities no UnixTimestamp kljudas datumiem ap 1970.01.01 , un vecakiem faktiski ar Unix timestamp nevaresi saglabaat 1969.12.31 :23:59:59 , un attieciigi 2 sek velaak, Ljoti liels procents ka var notiek kluuda... --- Edited April 7, 2009 by Grey_Wolf Quote
anonīms Posted April 7, 2009 Author Report Posted April 7, 2009 Tātad mēģinu ar datetime. Iesākums izskatās tā $apmekletaja_ip = mysql_real_escape_string($_SERVER['REMOTE_ADDR']); $parbaudam_vai_vins_sodien_ir_bijis = mysql_query("SELECT ip FROM floorball_online_today WHERE ip = '$apmekletaja_ip' AND datums = echo date('Y-m-d, H:i:s'); // Kā piemērs pašreizējam laikam. Tagad jautājums. Kā uzlikt WHERE datums(diena_menesis_gads) == ".date('Y-m-d')." ? // Lai viņš ņem tikai tos, kas ir šajā dienā Quote
Grey_Wolf Posted April 7, 2009 Report Posted April 7, 2009 (edited) kaapec tu IP glabasaina neizmanto INT ?? tas ir Krietni atraks nekaa Warchar lauks --- Es tachu pat uzrakstiju piemerus kaa Ievadiit un kaa izvilkt .. Edit: taas SQL f-jas jau var izmantot ne tikai Tuulit aiz SLECT bet arii saliidzinasanai .. SELECT count(*) FROM tabulis WHERE ip=INET_ATON('$apm_ip') AND YEAR(laiks)='2009' AND MONTH(laiks)='4' AND DAYOFMONTH(laiks)='8' kur $apm_ip=$_SERVER['REMOTE_ADDR']; -- Nevar saliidzinat , kaa dari tu, jo neaizmirsti ka ir arii Pulksstenja laiks, ja glabaatu tikai pliku datumu tad varetu .... -- Piemeraa protams gadus, menesi, datumu nomaini pats, Bet sadi var atlasiit Jepkuru konkreto datumu, vai Piemeram uzzinat cik unikalas IP bijushas konkretaa Dienakts stundaa... Edited April 7, 2009 by Grey_Wolf Quote
anonīms Posted April 7, 2009 Author Report Posted April 7, 2009 (edited) mysql_query("insert into floorball_online_today (ip, datums) VALUES ('".INET_ATON($apmekletaja_ip)."', '".date('Y-m-d H:i:s')."')"); : Call to undefined function: inet_aton() config failā jāmaina kaut ko? :\ btw, par NOW() // Neesmu viņu nekad izmantojis mysql_query("insert into floorball_online_today (ip, datums) VALUES ('".INET_ATON($apmekletaja_ip)."', '".NOW()."')"); arī par undefined function bļauj. Edited April 7, 2009 by anonīms Quote
Grey_Wolf Posted April 7, 2009 Report Posted April 7, 2009 (edited) anonīms --> tu lasiit maki ??? Es nevienaa briidii nesmu teicis kaa taa ir PHP f-ja !!!! jarakstaa tieshi taa kaa uzrakstiju INET_ATON('$apm_ip') tas pats attiecas uz NOW() Tas ir SQL f-jas attieciigi, NEVAJAG vinjas iznes arpus pedinjam Edited April 7, 2009 by Grey_Wolf Quote
anonīms Posted April 8, 2009 Author Report Posted April 8, 2009 (edited) http://paste.php.lv/125e47dca856b6602b6015...09f76c?lang=php Šķiet, ka sanāca :) un apmeklētāji šomēnes ar izveidoju. Viss iet ideāli. Edited April 8, 2009 by anonīms Quote
anonīms Posted April 8, 2009 Author Report Posted April 8, 2009 Sorry par dp, bet vēlējos pacelt tematu. Kā varētu izvilkt apmeklētāju skaitu šonedēļ? Quote
Aleksejs Posted April 8, 2009 Report Posted April 8, 2009 Skatoties, ko tu domā ar šonedēļ :) Ja šo konkrēto nedēļu (pirmdiena - svētdiena), tad WEEK(), savukārt, ja ±3 dienas abos virzienos, tad DATEDIFF(). Bet vispār - izpēti visas tās date/time funkcijas - būs pašam vieglāk :) Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.