2009-07-31 19 views
0

Ich möchte zählen, wie oft eine Postleitzahl in eine Datenbank eingegeben wird. Ich bin mir nicht sicher, ob ich die richtige Funktion verwende oder nicht. Auch muss ich die Postleitzahlen nach dem Jahr trennen, in dem sie in die Datenbank eingegeben wurden. Ich weiß, wie man die Jahre trennt. Worauf ich wirklich Hilfe brauche, sind doppelte Einträge. Hier ist mein Code.Doppelte Einträge in der Datenbank zählen

$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)) 

Antwort: Hier ist mein Code, das funktioniert.

$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

Was in der Tabelle sind die Felder? –

+0

zip_id visitor_zip visitor_id visitor_email time_register ich die time_register nur bin mit (dies ist ein Zeitstempel) und visitor_zip zu diesem Zeitpunkt. Ich schätze all die Hilfe, die ich schon bekommen habe. Ich war völlig auf der falschen Spur, um dieses Problem zu lösen. Ich habe versucht, eine PHP-Funktion dafür zu finden, anstatt die Abfrage in die Datenbank zu ändern. Jetzt weiß ich nicht, wie man den Code schreibt, um die Informationen aus der Datenbank anzuzeigen. Ist das sinnvoll? – PeggyMe

Antwort

0

ich denke, das sollte funktionieren:

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

Wahrscheinlich möchten Sie dort irgendwo ein min (time_register) hinzufügen, vorausgesetzt, das FIRST-Datum für jede Postleitzahl ist von Interesse. –

+0

Ich schätze all die Hilfe, die ich schon bekommen habe. Ich war völlig auf der falschen Spur, um dieses Problem zu lösen. Ich habe versucht, eine PHP-Funktion dafür zu finden, anstatt die Abfrage in die Datenbank zu ändern. Jetzt weiß ich nicht, wie man den Code schreibt, um die Informationen aus der Datenbank anzuzeigen. Kannst du helfen!? – PeggyMe

+0

Ich habe PHP in 5 Jahren nicht berührt, also bin ich wahrscheinlich nicht derjenige, um zu fragen. Vielleicht möchten Sie dies zu Ihrer ursprünglichen Frage hinzufügen. –

0
select count(ZIPCODEFIELD) as cnt, ZIPCODEFIELD, time_register FROM zip 
GROUP BY zipcode,time_register 
Verwandte Themen