+ Antworten
Ergebnis 1 bis 5 von 5

Thema: Formular Optionsgruppen nach PLZ Grupiert anzeigen

  1. #1
    TP-Senior maffy macht alles soweit korrekt
    Registriert seit
    Oct 2002
    Ort
    Steinach
    Beiträge
    146

    Formular Optionsgruppen nach PLZ Grupiert anzeigen

    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: &nbsp;";
    	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/>";
    
    	
    ?>

  2. #2
    TP-Supporter buffy2511 macht alles soweit korrekt Avatar von buffy2511
    Registriert seit
    Feb 2005
    Ort
    Braunschweig
    Beiträge
    462
    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

  3. #3
    TP-Senior maffy macht alles soweit korrekt
    Registriert seit
    Oct 2002
    Ort
    Steinach
    Beiträge
    146
    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`)
    	);
    	";

  4. #4
    TP-Supporter buffy2511 macht alles soweit korrekt Avatar von buffy2511
    Registriert seit
    Feb 2005
    Ort
    Braunschweig
    Beiträge
    462
    Dann mach es doch so.
    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>";
        
        } 
    Oder unterscheiden sich die Gemeinden auch noch in der PLZ, sodass dir wohlmöglich Daten flöten gehen?
    Grüße aus der Löwenstadt, Nadine

  5. #5
    TP-Senior maffy macht alles soweit korrekt
    Registriert seit
    Oct 2002
    Ort
    Steinach
    Beiträge
    146
    Für manche Gemeinden wie z.B. für Fulda gibt es mehrere PLZ Gebiete.

+ Antworten

Ähnliche Themen

  1. Div nach dem Scrollen anzeigen
    Von Cray im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 10.07.2010, 09:38
  2. Antworten: 1
    Letzter Beitrag: 08.04.2008, 14:25
  3. [ACCESS] Datenbanktabelle auf Formular anzeigen
    Von Levis im Forum Betriebssysteme
    Antworten: 0
    Letzter Beitrag: 08.03.2007, 16:06
  4. formular mit php prüfen und fehler im formular anzeigen lassen
    Von tobias82 im Forum Webdesign allgemein
    Antworten: 22
    Letzter Beitrag: 01.04.2006, 21:51
  5. Antworten: 17
    Letzter Beitrag: 03.08.2003, 12:02

Stichworte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51