PHP: Фильтровать массив MYSQL

0

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

Например:

Firefox     Mac OS X 

Safari      Mac OS X 

Firefox     Mac OS X

Firefox     Linux

Затем на веб-сайте будет отображаться

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

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

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

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

  • 0
    Что именно вы храните в БД? Firefox Mac OS X - это то, что вы храните?
Теги:
browser
counter
operating-system

2 ответа

1
Лучший ответ
SELECT browser, os, COUNT(*) as c FROM table GROUP BY browser, os;
  • 0
    Спасибо! Это работает: D
1

Функция 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)')

;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню