Schleife mit PHP********

Xching

Erfahrenes Mitglied
Hallo Zusammen,

Ich weiß es nicht,wie ich Schleife machen könnte, ich hoffe dass ihr mir weiter helfen könnte.

Ich möchte nicht nur lat,lon in diesem Ortname und diesem plz in der Tabelle einfügen,weil in meine Tabelle besteht aus über 2000 Ortenname und Plz über 2000 Plz und es sollte Ort,plz mit lon und lat bestimmt.

PHP:
$sql_lat ="SELECT coo.lat
						FROM geodb_textdata plz
						LEFT JOIN geodb_textdata ort ON plz.loc_id = ort.loc_id
						LEFT JOIN geodb_coordinates coo ON plz.loc_id = coo.loc_id
						WHERE plz.text_type = '500300000'AND ort.text_type = '500100000' ";
$res_lat = mysql_query($sql_lat) OR die("<br><b><font color='#FF0000' face='Verdana'>lat nicht gefunden !</font></b><br>".mysql_error());

while($dat_lat = mysql_fetch_assoc($res_lat)) {

         $check_lat =($dat_lat['lat']);
	   }

$sql_lon ="SELECT coo.lon
						FROM geodb_textdata plz
						LEFT JOIN geodb_textdata ort ON plz.loc_id = ort.loc_id
						LEFT JOIN geodb_coordinates coo ON plz.loc_id = coo.loc_id
						WHERE plz.text_type = '500300000'AND ort.text_type = '500100000' ";
$res_lon = mysql_query($sql_lon) OR die("<br><b><font color='#FF0000' face='Verdana'>Ortname nicht gefunden !</font></b><br>".mysql_error());

while($dat_lon = mysql_fetch_assoc($res_lon)) {

         $check_lon =($dat_lon['lon']);
	   }
// 2 Felder von eine Tabelle in andere Tabelle einfügen	   
$Ergebnis ="UPDATE Koordinaten2 set lat ='$check_lat',lon = '$check_lon' WHERE Ortname = 'Karben' AND plz = '61184' ";
mysql_query($Ergebnis);
print ($Ergebnis);
 
Warum machst Du zwei Queries?
PHP:
$sql_latlon ="
SELECT coo.lat,coo.lon
FROM geodb_textdata plz
LEFT JOIN geodb_textdata ort ON plz.loc_id = ort.loc_id
LEFT JOIN geodb_coordinates coo ON plz.loc_id = coo.loc_id
WHERE plz.text_type = '500300000'AND ort.text_type = '500100000' ";

$res_latlon = mysql_query($sql_latlon) OR die("<br/>lat/lon nicht gefunden !<br/>".mysql_error());
phpWeiterhin :
(1) Lediglich, wenn etwas gefunden wurde, wird der Code in der while-Schleife ausgeführt, also könnte man das Update direkt in jene reinstellen
(2) Ich sehe auf Anhieb nicht, wo gecheckt wird, ob Karpen 61184 in der obigen Tabelle drin ist.
PHP:
while($dat_latlon = mysql_fetch_assoc($res_latlon)) {
         
  // 2 Felder von eine Tabelle in andere Tabelle einfügen	   
  $Ergebnis ="
     UPDATE Koordinaten2 set lat ='$check_lat',lon = '$check_lon' 
     WHERE   Ortname = 'Karben' AND plz = '61184' ";
  $mysqlstate = mysql_query($Ergebnis);
  echo $mysqlstate."<br/>";
}
mfg chmee
 
Wenn Du meine Source einfach rüberkopert hast, kein Wunder, das war nur ein Gedankenansatz. In meinem Source gibt es nur noch latlon und keine $check variable mehr.

Und in der Update-Query müsste wohl der fehler sein:
PHP:
while($dat_latlon = mysql_fetch_assoc($res_latlon)) {
         
  // 2 Felder von eine Tabelle in andere Tabelle einfügen       
  $Ergebnis ="
     UPDATE Koordinaten2 set lat ='".$dat_latlon['lat']."',lon = '".$dat_latlon['lon']."' WHERE Ortname = 'Karben' AND plz = '61184' ";
  $mysqlstate = mysql_query($Ergebnis);
  echo $mysqlstate."<br/>";
}
mfg chmee
 
Ich bekomme die nur eine lat,lon Wert und Wert stimmt nicht mit Ortnamen und plz und habe ich nur eine Wert bekommen nicht alles, ich weiß sich nicht mehr weiter,ich hoffe dass ihr mir weiter helfen könnte
 
PHP:
$sql_latlon ="
SELECT coo.lat,coo.lon,plz.text_val,ort.text_val
FROM geodb_textdata plz
LEFT JOIN geodb_textdata ort ON plz.loc_id = ort.loc_id
LEFT JOIN geodb_coordinates coo ON plz.loc_id = coo.loc_id
WHERE plz.text_type = '500300000'AND ort.text_type = '500100000' ";
while($dat_latlon = mysql_fetch_assoc($res_latlon)) {
         
  // 2 Felder von eine Tabelle in andere Tabelle einfügen       
  $Ergebnis ="
     UPDATE Koordinaten2 set lat ='".$dat_latlon['lat']."',lon = '".$dat_latlon['lon']."' WHERE Ortname = '.$dat_latlon['ort'].' AND plz = ''.$dat_latlon['plz']. ";
  $mysqlstate = mysql_query($Ergebnis);
  echo $mysqlstate."<br/>";
}  


mysql_close($sql)

ich habe die Wert von lon und lat bekommen, die nicht mit Ortname und plz in der Tabelle Koordinaten2 sind und es wird nur zufall die Wert lon, lat, Ortname,plz angezeigt und wird nicht in PHPMyadmin eingefügt und ich weiß es nicht, wo liegt das Problem und den Fehler.
 
Du gibst leider weiterhin zu wenig Infos, ich weiß immer noch nicht, welche Daten in welcher Tabelle stehen - vor Allem das Ziel ist mir auch noch nicht ganz schlüssig. Deiner deutschen Schriftsprache zu urteilen bist Du kein Deutscher. Schreib es in Deiner Landessprache hierher und wir müssen einen Online-Translator bemühen..

(Immerhin hab ich jetzt verstanden, dass es eine GEODB gibt, die jene Infos bereithält..)

p.s: Oben siehst Du schon ' " Fehler in der Update-Query!
PHP:
$Ergebnis="UPDATE Koordinaten2 set lat ='".$dat_latlon['lat']."',lon = '".$dat_latlon['lon']."' WHERE Ortname = '".$dat_latlon['ort']."' AND plz = '".$dat_latlon['plz']."'";

mfg chmee
 
Ja, ich bin kein Deutscher,aber ich möchte gern lieber versuchen, mit Deutsch zu schreiben, wenn sie nicht dagegen haben.

Ich möchte bei ihnen entschuldigen, dass ich zu wenig Infos gegenben habe.

Es gibt eine GEOdb, die jene Infos bereithält und in meine Tabelle Koordinaten2 besteht aus 5 felder id,Ortname,plz,lat lon. In feld id,Ortname,plz sind die Daten schon vorhandeln, außer lat lon nicht, deswegen sollte ich Ortname und plz in meine Tabelle Koordinaten2 mit Daten in GEODB abgleichen, um lat und lon herrauszufinden, und in Koordinaten2 einfügen oder aktualisieren.
 
Zurück