2011-09-08 11 views
0

このコードはうまくいきますが、私はそれをどのように注文するのか迷っています。数えた後に結果を注文するPHP

出力例:

ヒット3 Mozilla Firefoxの
ヒット2 Google Chromeの
ヒット4 Internet Explorerの
ヒット2アップルのSafari
ヒット1オペラ

$result = mysql_query("SELECT * FROM WEB_STATS WHERE real_user NOT LIKE 'Bot'"); 
$duplicates = array(); 
while($row = mysql_fetch_array($result)) { 
    $results = $row['user_browser']; 

if (!array_key_exists($results, $duplicates)) { 
    $browsersLive[] = $results; 
    $duplicates[$results] = 1; ## mark that we've already output this records 
    } 
    } 

foreach($browsersLive as $browserswive){ 
    $query = "SELECT COUNT(*) FROM WEB_STATS WHERE user_browser = '$browserswive'"; 
    $result = mysql_query($query) or die("Sorry, didn't work" . mysql_error()); 
    $browser_count = mysql_result($result, 0); 

    if($browserswive == "Mozilla Firefox"){ 
    echo '<img alt="FireFox" height="32" src="images/fox-icons.png" width="32">Hits '.$browser_count.' '.$browserswive.'<br>'; 
} 
    elseif($browserswive == "Internet Explorer"){ 
    echo '<img alt="Internet Explore" height="32" src="images/ie-icons.png" width="31">Hits '.$browser_count.' '.$browserswive.'<br>'; 
} 
    elseif($browserswive == "Google Chrome"){ 
    echo '<img alt="Google Chrome" height="32" src="images/chrome-icons.png" width="32">Hits '.$browser_count.' '.$browserswive.'<br>'; 
} 
    elseif($browserswive == "Apple Safari"){ 
    echo '<img alt="Apple Safari" height="32" src="images/safari-icons.png" width="32">Hits '.$browser_count.' '.$browserswive.'<br>'; 
} 
    elseif($browserswive == "Opera"){ 
    echo '<img alt="Opera " height="33" src="images/opera-icons.png" width="33">Hits '.$browser_count.' '.$browserswive.'<br>'; 
} 
} 
+0

...一緒にあなたが探している何をすべき

ORDER BY CAST(substring(substring_index(colName,2),INSTR(' ',colName)) AS SIGNED) 

をすべてを置きますか?出力例は複数の列か単一の文字列ですか? – Sparky

+0

ヒットを降順で実行します。上記の出力例は、ここでどのように表示されるかです。 – MHowey

答えて

1

微調整SQLから

SELECT user_browser, COUNT(*) as hits 
FROM WEB_STATS 
WHERE real_user!='Bot'  <-- replace the NOT LIKE 'Bot' 
GROUP BY user_browser 
ORDER BY hits DESC; 

そして、あなたはちょうど

+0

"real_user!= 'Bot'"ありがとうございますが、私は注文するにはヒットしません**。私がした場合、私はカウントする必要はありません。 Imに何かが見つからない限り、 – MHowey

+0

SQL – ajreal

0

のようなものを注文してみた結果反復その後、一度照会する必要があります。

  • SUBSTRING_INDEX(colNameには、2) - >は===>が2 HITS 2オペラをHITS
  • SUBSTRING(INSTR(」」、colNameに)) - > 2 ==> 2
  • CAST(SIGNED AS)をHITS - >数
に2換算0

は、あなたがそれを注文した見たいにはどうすればよい

関連する問題