Доброе вечер всем... Уважаемые гуру помогите разобраться не могу найти ошибку или проблему... PHP: function user_min_browser($agent) { preg_match("/(MSIE|Opera|Firefox|Chrome|Version)(?:\/| )([0-9.]+)/", $agent, $browser_info); list(,$browser,$version) = $browser_info; if ($browser == 'Opera' && $version == '9.80') return 'Opera '.substr($agent,-5); if ($browser == 'Version') return 'Safari '.$version; if (!$browser && strpos($agent, 'Gecko')) return 'Browser based on Gecko'; return $browser.' '.$version; } $a = (user_browser($_SERVER['HTTP_USER_AGENT'])); $br = mysql_query("SELECT * FROM browers WHERE name = '".$a."'",$db); $brrow = mysql_fetch_array($br); $us = mysql_query("SELECT * FROM browers WHERE name = 'user'",$db); $usrow = mysql_fetch_array($us); if ($a == $brrow['name']) { $sum = $brrow['host'] + 1; mysql_query("UPDATE browers SET host = '".$sum."' WHERE name = '".$a."'"); $sumus = $usrow['host'] + 1; mysql_query("UPDATE browers SET host = '".$sumus."' WHERE name = 'user'"); } else { $sum = 1; mysql_query("INSERT INTO browers (name, host) VALUES ('".$a."', '".$sum."')"); $sumus = $usrow['host'] + 0; mysql_query("UPDATE browers SET host = '".$sumus."' WHERE name = 'user'"); } 1. новое значение не добавляет в БД 2. условие всегда TRUE 3. $a пропадает куда то после mysql_query Помогите разобраться...
т.е. функция возвращает пустое значение? после строки $a = (user_browser($_SERVER['HTTP_USER_AGENT'])); напиши var_dump($a);die(); и убедись точно что именно приходит
2. Значит все браузеры уже в базе. 1. Если условие всегда TRUE, то естественно не выполняется ветка с добавлением. 3. После которого? 4. Код (Text): $sumus = $usrow['host'] + 0; mysql_query("UPDATE browers SET host = '".$sumus."' WHERE name = 'user'"); Зачем? Ну и правильно сказали. Код (Text): $a = (user_browser($_SERVER['HTTP_USER_AGENT'])); var_dump($a): var_dump($_SERVER['HTTP_USER_AGENT']): die(); и т. д. пока проблема не будет локализована.