2009-07-31 14 views
0

郵便番号がデータベースに入力された回数を数えたいと思います。私は正しい機能を使用しているかどうかはわかりません。また、最終的に私は彼らがデータベースに入力された年までに郵便番号を分離する必要があります。私は年を分ける方法を知っています。私が本当に必要とするのは、重複したエントリーを数えることです。 ここに私のコードです。データベースに重複したエントリを数える

$sql = 'SELECT * FROM zip ORDER BY time_register'; 
$result = mysql_query($sql,$db) or die(mysql_error(). "<br />SQL: $sql"); 
$row = mysql_fetch_array($result); 

do{ 
    $visitor_zip= array(); 
    $register = $row['time_register']; 
    $register_year = date(Y,$register); 

    print_r(array_count_values($visitor_zip)); 

} while($row = mysql_fetch_array($result)) 

回答:ここで働く私のコードです。

$sql = "SELECT `visitor_zip` AS `zip`, COUNT(`visitor_zip`) AS `cnt` 
     FROM `zip` 
     GROUP BY `visitor_zip` 
     ORDER BY visitor_zip"; 

$result = mysql_query($sql,$db) or die(mysql_error(). "<br />SQL: $sql"); 

print '<table class="zip"><tr><td><b>Zip</b></td><td># of</td></tr>'; 
while($row = mysql_fetch_array($result)) { 
    print '<tr><td>' . $row['zip'] .'</td><td>'. $row['cnt'] . '</td></tr>'; 
} 
print '</table>'; 
+0

あなたのテーブルのフィールドには何ですか? –

+0

zip_id visitor_zip visitor_id visitor_email time_register 私は、この時点でtime_register(これはタイムスタンプである)とvisitor_zipを使用しています。 私は既に得たすべての助けに感謝します。私はこの問題を解決しようとしている間違った道を歩いていた。私はデータベースにクエリを変更する代わりに、これを行うPHP関数を見つけようとしていました。今私は、データベースから情報を表示するコードをどのように記述するのか分かりません。これが意味を成しますか? – PeggyMe

答えて

0

私は、これは動作するはずだと思う:

SELECT COUNT(*) AS cnt, zipcode FROM zip 
GROUP BY zipcode 
ORDER BY time_register 
+0

おそらく、各郵便番号の最初に入力された日付が興味のあるものと仮定して、どこかにmin(time_register)を追加したいと思うでしょう。 –

+0

私は既に得たすべての助けに感謝します。私はこの問題を解決しようとしている間違った道を歩いていた。私はデータベースにクエリを変更する代わりに、これを行うPHP関数を見つけようとしていました。今私は、データベースから情報を表示するコードをどのように記述するのか分かりません。手伝ってくれますか!? – PeggyMe

+0

私は5年間でPHPに触れていないので、私はおそらく質問する人ではありません。これを元の質問に追加することもできます。 –

0
select count(ZIPCODEFIELD) as cnt, ZIPCODEFIELD, time_register FROM zip 
GROUP BY zipcode,time_register 
関連する問題