Подсчет повторяющихся записей в базе данных

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

$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>';

person PeggyMe    schedule 31.07.2009    source источник
comment
Какие поля есть в вашей таблице?   -  person Carl Manaster    schedule 01.08.2009
comment
zip_id visitor_zip visitor_id visitor_email time_register В настоящее время я использую только time_register (это отметка времени) и visitor_zip. Я ценю всю помощь, которую я уже получил. Я был совершенно на неправильном пути, пытаясь решить эту проблему. Я пытался найти функцию php для этого вместо изменения запроса к базе данных. Теперь я не знаю, как написать код для отображения информации из базы данных. Имеет ли это смысл.   -  person PeggyMe    schedule 01.08.2009


Ответы (1)


Я думаю, что это должно работать:

SELECT COUNT(*) AS cnt, zipcode FROM zip
GROUP BY zipcode
ORDER BY time_register
person Steve Wortham    schedule 31.07.2009
comment
Вы, вероятно, захотите добавить туда min(time_register) где-нибудь, предполагая, что ПЕРВАЯ введенная дата для каждого почтового индекса представляет интерес. - person Carl Manaster; 01.08.2009
comment
Я ценю всю помощь, которую я уже получил. Я был совершенно на неправильном пути, пытаясь решить эту проблему. Я пытался найти функцию php для этого вместо изменения запроса к базе данных. Теперь я не знаю, как написать код для отображения информации из базы данных. Вы можете помочь!? - person PeggyMe; 01.08.2009
comment
Я не касался php в течение 5 лет, так что, вероятно, не я спрашиваю. Возможно, вы захотите добавить это к своему исходному вопросу. - person Steve Wortham; 01.08.2009