PHP: Фильтровать массив MYSQL - PullRequest
0 голосов
/ 22 сентября 2010

Я разрабатываю счетчик посещений и хочу увеличить число в зависимости от браузера и операционной системы.

Например:

Firefox     Mac OS X 

Safari      Mac OS X 

Firefox     Mac OS X

Firefox     Linux

Тогда веб-сайт будетdisplay

Safari в Mac OS X 1 посещение

Firefox в Mac OS X 2 посещения

Firefox в Linux 1 посещение

Существует множество комбинаций браузеров и операционных систем, поэтому я хотел бы использовать алгоритм, который легко это вычислит.Данные извлекаются из базы данных MYSQL.Кто-нибудь знает хороший способ сделать это?

Ответы [ 2 ]

1 голос
/ 22 сентября 2010

Функция get_browser вернет довольно большой массив со всей информацией, которую он может знать о пользователе.

Вы должны поместить этот массив в базу данных, возможно, со столбцом для каждой части информации, которую возвращает get_browser ():

  $browser = get_browser()
  print_r($browser);

  foreach ($browser as $key => $information) { // You may want to use array_walk for this, wich is harder to read in a simple example.
    $browser_clean[$key] = mysql_real_escape_string($information); //DO NOT FORGET TO SANITIZE, ppl can spoof the browserstrings and open up SQL injection holes!
  }
  //You probably want some slightly cleaner and better way to talk to the Database then boiling up some ugly SQL-string, though.
  mysql_query('INSERT INTO browserstats (parent, platform, browser, ...restofyourfields) VALUES ('. $browser_clean['parent'] .','. $browser_clean['platform'] .','. $browser_clean['browser'] .'...restofthefields)')

;

1 голос
/ 22 сентября 2010
SELECT browser, os, COUNT(*) as c FROM table GROUP BY browser, os;
...