Gibts die Gemeinden denn mehrfach? Dann versuch mal "group by gemeinde". Dann gibt er dir die immer nur einmal aus.
Hallo,
ich habe ein Problem!
Mit diesem Code lasse ich ein Formular erzeugen wo man Orte aus einer Liste auswählen kann.
Leider werden bei manchen Gemeinden die Datensätze doppelt bzw. mehrfach angezeigt.
Wie muss die Abfrage richtig sein damit erst die Gemeinde dann die Ortsteile mit der gleichen PLZ angezeigt werden.
Code:<?PHP ###################################################### # Quick Jump - Gemeinde auswählen und Wanderparkplätze in der Karte anzeigen ###################################################### $ortsteil_list =""; // Gemeinde anteigen $hres = mysql_query("SELECT * FROM ".ORTE_TABLE." ORDER BY GEMEINDE ASC"); while( $hrow = mysql_fetch_array($hres) ) { $gemeinde_id = $hrow['ID']; $gemeinde_name = $hrow['GEMEINDE']; $gemeinde_ort = $hrow['ORT']; $gemeinde_plz = $hrow['PLZ']; $ortsteil_list .="<optgroup label=\"Gemeinde: ".$gemeinde_plz." ".$gemeinde_name."\">"; // Ortsteile anzeigen $ures = mysql_query("SELECT * FROM ".ORTE_TABLE." WHERE PLZ like '%".$gemeinde_plz."%' "); while($uct = mysql_fetch_array($ures)) { $ort_id = $uct['ID']; $ort_gemeinde = $uct['GEMEINDE']; $ort_name = $uct['ORT']; $ort_plz = $uct['PLZ']; $ort_lat = $uct['LAT']; $ort_lon = $uct['LON']; $ortsteil_list .="<option value=\"?lat=".$ort_lat."&lon=".$ort_lon."\">".$ort_plz." ".$ort_name."</option><br>"; } $ortsteil_list ="</optgroup>"; } ################################ # Parkplätze Quick Jump ################################ echo "<center>"; print "<table border='0' width='85%' cellspacing='2px' rowspacing='2px' id='tablerahmen'><tr><th>"; print "<form name=\"Formular\">"; print "Gemeinde auswählen: "; print "<select name=\"Ziel\" onchange=\"QuickJump(this.form);\">"; print "<option value=\"\" selected>-- Bitte wählen --</option>"; print "{$ortsteil_list}"; print "</select>"; print "</th></tr></form></table><br/>"; ?>
Gibts die Gemeinden denn mehrfach? Dann versuch mal "group by gemeinde". Dann gibt er dir die immer nur einmal aus.
Grüße aus der Löwenstadt, Nadine
Ja, die Hauptgemeinde steht in der ortsteile tabelle
Manche Orte werden mehrfach für eine PLZ angezeigt.
Die Datenbank für die 'orte sieht so aus
Code:$queries[] .=" CREATE TABLE " . ORTE_TABLE . " ( `ID` int(11) NOT NULL auto_increment, `ORT` varchar(75), `PLZ` varchar(7), `GEMEINDE` varchar(75), `KREIS` varchar(75), `REGIERUNGSBEZIRK` varchar(75), `BUNDESLAND` varchar(75), `LAT` decimal(10,6) NOT NULL default '0.000000', `LON` decimal(10,6) NOT NULL default '0.000000', PRIMARY KEY (`ID`,`PLZ`,`GEMEINDE`) ); ";
Dann mach es doch so.
Oder unterscheiden sich die Gemeinden auch noch in der PLZ, sodass dir wohlmöglich Daten flöten gehen?PHP-Code:$hres = mysql_query("SELECT * FROM ".ORTE_TABLE." GROUP BY GEMEINDE ASC"); // Jetzt bekommst du jede Gemeinde nur einmal angezeigt
while( $hrow = mysql_fetch_array($hres) )
{
$gemeinde_id = $hrow['ID'];
$gemeinde_name = $hrow['GEMEINDE'];
$gemeinde_ort = $hrow['ORT'];
$gemeinde_plz = $hrow['PLZ'];
$ortsteil_list .="<optgroup label=\"Gemeinde: ".$gemeinde_plz." ".$gemeinde_name."\">";
// Ortsteile anzeigen
$ures = mysql_query("SELECT * FROM ".ORTE_TABLE." WHERE PLZ like '%".$gemeinde_plz."%' ");
while($uct = mysql_fetch_array($ures)) {
$ort_id = $uct['ID'];
$ort_gemeinde = $uct['GEMEINDE'];
$ort_name = $uct['ORT'];
$ort_plz = $uct['PLZ'];
$ort_lat = $uct['LAT'];
$ort_lon = $uct['LON'];
$ortsteil_list .="<option value=\"?lat=".$ort_lat."&lon=".$ort_lon."\">".$ort_plz." ".$ort_name."</option><br>";
}
$ortsteil_list ="</optgroup>";
}
Grüße aus der Löwenstadt, Nadine
Für manche Gemeinden wie z.B. für Fulda gibt es mehrere PLZ Gebiete.
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)