Jump to content
php.lv forumi

HTTP_USER_AGENT kompsavilkums


vimba

Recommended Posts

INSERT INTO `table` (`user_agent`) VALUES('$user_agent')

 

SELECT COUNT (`id`), `user_agent` FROM `table` GROUP BY `user_agent`

 

Nu ja tu būtu kaut reizi to pats darījis, tad redzētu, ka tik vienkārši vis nav, jo šādi nu nekādīgi atsevišķi OS un Browser izvilkt nevar. Pie tam Browseriem un dažreiz OS ir arī milzum daudz versijas...

Link to comment
Share on other sites

vajag lobīt to infu ārā, pirms ievietot tabulā un katrai informācijai (OS, browseris, utt), pēc kuras vēlas kaut ko kārtot, atlasīt, utt, taisīt savu kolonnu un tajā glabāt to informāciju.

 

OFFT: Es biku nesaprotu, atbildot uz postu "ne pa ķeksi" jūs vienkārši "es esmu krutais postētājs" kaut kādus punktus tādā veidā vācat?

Jautājums bija izvilkt no _esošiem_ datiem infu, nevis kā būtu bijis pareizāk/mazāk pareizi...

Link to comment
Share on other sites

Kas Tev tur likās nepareizi?

Ja datubāzē ir pilnais user agent strings, kas Tev nepatīk PheliX postā?

Pats lietoju mazliet citādāku pašrakstītu funkciju, bet pamatā ideja tā pati vien ir.

EDIT: Nu jā, dati jau bāzē ir un vajag no tā izvilkt, tad codez posts mazliet ir garām, bet doma kā tāda jau nemaz tik aplama nav, tikai ne šajā gadījumā der.

Edited by mounkuls
Link to comment
Share on other sites

Ko jūs murgojat, kāpēc neder?

Ņemam tabulu, pieliekam laukus, nopārsējam visu ierakstus, sarakstam visus jaunos laukus (OS, browser, utt), ieliekam indeksus un dzīvojam laimīgi.

Tas ir vienīgais reālais risinājums, jo nemainot db struktūru, pie katra pieprasījuma nāksies pārsēt visus ierakstus. Ja tāds ir paštaisīts blogs, kuru neviens nelasa un pa gadu sakrājušies 1000 ieraksti, varbūt arī var pārset visus ierakstus, bet, ja ieraksti ir miljons un ir vajadzīga realtime informācija, tad nāksies vien uzlabot db struktūru.

Link to comment
Share on other sites

OFFT: Es biku nesaprotu, atbildot uz postu "ne pa ķeksi" jūs vienkārši "es esmu krutais postētājs" kaut kādus punktus tādā veidā vācat?

Jautājums bija izvilkt no _esošiem_ datiem infu, nevis kā būtu bijis pareizāk/mazāk pareizi...

Ākst, es jaunus datus nepiedāvāju likt klāt, tos pašus esošos arī izmantot, tikai pārveidot tā, lai viņi ir indeksēti.

Zini tādu teicienu - dāvinātam zirgam zobus neskatās?

Link to comment
Share on other sites

Ākst, es jaunus datus nepiedāvāju likt klāt, tos pašus esošos arī izmantot, tikai pārveidot tā, lai viņi ir indeksēti.

Zini tādu teicienu - dāvinātam zirgam zobus neskatās?

 

Nu tad tā arī varēji rakstīt, nevis tagad taisnoties... :-D

Link to comment
Share on other sites

It kā to nevarētu saprast, ja pārtaisa kko, tad datus atbilstoši nomigrē.

 

PS: Uz atbildi man par

Nu ja tu būtu kaut reizi to pats darījis, tad redzētu, ka tik vienkārši vis nav

Atbildēji tu pats:

Vajadzīgs vienkāršs skripts lai no [..]
Edited by Kavacky
Link to comment
Share on other sites

Lūk paraugs ar diviem browseriem, saliec papildus vēl nosacījumus. Bet brīdinu, šis ir overkills, it sevišķi ja daudz datu un bieži izpildīsi. Neuzņemos nekādu atbildību par nelietderīgu resursu izmantošanu :)

Regulārai izpildīšanai, iepriekš tika ieteikti tie prātīgākie varianti. Bet ja vajag vienai reizei, tad būs ok variants.

SELECT (CASE WHEN (user_agent LIKE '%Firefox%') THEN 'Firefox' WHEN (user_agent LIKE '%Chrome%') THEN 'Chrome' ELSE 'Other' END) AS browser, count(*) FROM tabula GROUP BY browser ORDER BY count(*) DESC

Edited by cilveks
Link to comment
Share on other sites

Lūk paraugs ar diviem browseriem, saliec papildus vēl nosacījumus. Bet brīdinu, šis ir overkills, it sevišķi ja daudz datu un bieži izpildīsi. Neuzņemos nekādu atbildību par nelietderīgu resursu izmantošanu :)

Regulārai izpildīšanai, iepriekš tika ieteikti tie prātīgākie varianti. Bet ja vajag vienai reizei, tad būs ok variants.

SELECT (CASE WHEN (user_agent LIKE '%Firefox%') THEN 'Firefox' WHEN (user_agent LIKE '%Chrome%') THEN 'Chrome' ELSE 'Other' END) AS browser, count(*) FROM tabula GROUP BY browser ORDER BY count(*) DESC

Tanks! Kaut ko šitādu tieši vajadzēja "uz fikso pārskriet pāri". Mazliet pielaboju un darbojas tā kā patreiz vajag.

Paldies visiem!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...