Insert Into über SQL/PHP in Datenbank einfügen

Xching

Erfahrenes Mitglied
Hallo Zusammen,

Ich hab hier ein Problem If Anweisung und Insert Into über SQL/PHP, schau ihr mal bitte in meinem PHP Daten.
Ich hoffe, dass ihr mir weiter helfen könntet.

In diesem Fall möchte ich so machen, wenn plz Wert aus dem Tabelle Koordinaten sind mit textdata.text_val Wert aus dem result3 gleich, sollte die Wertcoo. lat und coo.lon in lat und lon aus dem Tabelle Koordinaten speichern, aber es hat nicht funktioniert.

textdata.text_val = plz in Tabelle geodb_texdata

PHP:
<?php
define ( 'MYSQL_HOST', 'localhost' );
define ( 'MYSQL_BENUTZER', 'xxxxxx' );
define ( 'MYSQL_KENNWORT', 'xxxxx' );
define ( 'MYSQL_DATENBANK','xxxxx' );


   $con = mysql_connect ( "localhost" , "xxxxxx" , "xxxxxx" ) ;
   if ( !$con ) {
     die ( 'Es könnte nicht verbinden werden : ' . mysql_error ()) ;
   }

   mysql_select_db ( "xxxxxx" , $con ) ;


  $plz = mysql_query ('SELECT plz FROM Koordinaten ');
   
   $result3 = mysql_query ( 'SELECT
					coo.lat,
					coo.lon,
					textdata.text_val
				FROM geodb_coordinates AS coo
				INNER JOIN geodb_textdata AS textdata
				ON textdata.loc_id = coo.loc_id 
  			   WHERE  textdata.text_type = "500300000" LIMIT 1 ');
 
 if($plz == $result3.textdata.text_val )
 {
   "INSERT INTO Koordinaten (lat,lon) 
    SELECT coo.lat,coo.lon FROM  geodb_coordinates AS coo
				INNER JOIN geodb_textdata AS textdata
				ON textdata.loc_id = coo.loc_id 
  			    WHERE  textdata.text_type = '500300000' LIMIT 1 ";
   
  
 }
 else 
 {
 echo "nicht richtig haha";
 }
mysql_close($con);  
   ?>
 
Zuletzt bearbeitet:
Im Insert definierst du 2 Felder, im SELECT wählst du 3 Felder. Wohin soll das SQL das dritte Feld (textdata.text_type) den schreiben?
 
hi xing,

jau, da hast du einiges vermischt,
löse es schrittweise ;)

plz holen, checken, bei checkerfolg daten speichern

also etwa so

PHP:
// plz aus koordinaten holen, evtl. order by einfügen ....

$sql_plz = "select plz from koordinaten limit 0,1 ";
$res__plz = mysql_query($sql_plz) OR die("<br><b><font color='#FF0000' face='Verdana'>PLZ nicht gefunden !</font></b><br>".mysql_error());
   
while($dat_plz = mysql_fetch_assoc($res_plz)) {

$check_plz = $dat__plz['plz']; // plz zum checken geholt

// checken wie oft  plz in den anderen 2 tabellen vorhanden sind
$sql_check1 = mysql_numrows(mysql_query("select plz from geodb_coordinates where plz = $check_plz"));
$sql_check2 = mysql_numrows(mysql_query("select plz from geodb_textdata where plz = $check_plz"));

if ($sql_check1 == $sql_check2) {
// sind also in beiden tabellen x-mal vorhanden und lat und lon speichern 
mysql_query("insert into geodb_coordinate set lat='$latwert', lon='$lotwert'");
}
}

da plz schon in der tabelle geodb_coordinate vorhanden ist, dann willst du evtl. nicht einfügen (insert) sondern die tabelle nur mit lat und lon bei der plz updaten (update ... where plz = '$plz')

ich hoffe, hat dir was geholfen, habe nicht getestet, daher kein garantie auf syntax

grüsse
drachenflieger
 
Hallo, ich danke ihnen viel mal , dass sie ganz viel Mühe gegeben haben aber es ist noch nicht richtig, weil ich Fehler bekomme.

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, null given in /home/www/test/www/Test /Geodatenberechnung/test2.php on line 30 Call Stack: 0. {main}() /home/www/test/www/Test /Geodatenberechnung/test2.php:0 mysql_fetch_assoc() /home/www/test/www/Test/Geodatenberechnung/test2.php:30

Und Außerdem in geodb_coordinates Tabelle befindet sich kein plz Feld sondern nur lon und lat
und in geodb_textdata befindet sich plz feld aber andere name "text_val" heißt . die beide haben miteinander mit loc.id feld verbunden.

Ich weßt es nicht wie ich machen sollte.Villeicht könnte ihr mir weiterhelfen.
 
Zuletzt bearbeitet:
If-Anweisung und INSERT INTO über SQL/PHP

Hallo Zusammen,

Ich hab hier ein Problem If Anweisung und Insert Into über SQL/PHP, schau ihr mal bitte in meinem PHP Daten.
Ich hoffe, dass ihr mir weiter helfen könntet.

In diesem Fall möchte ich so machen, wenn plz Wert aus dem Tabelle Koordinaten mit text_val Wert aus dem geodb_textdata gleich sind, sollte die Wertcoo. lat und coo.lon in lat und lon aus dem Tabelle Koordinaten speichern, aber es hat nicht funktioniert.

textdata.text_val = plz in Tabelle geodb_texdata
PHP:
define ( 'MYSQL_HOST', 'localhost' );
define ( 'MYSQL_BENUTZER', 'xxxxxx' );
define ( 'MYSQL_KENNWORT', 'xxxxx' );
define ( 'MYSQL_DATENBANK','xxxxx' );


   $con = mysql_connect ( "localhost" , "xxxxxx" , "xxxxxx" ) ;
   if ( !$con ) {
     die ( 'Es könnte nicht verbinden werden : ' . mysql_error ()) ;
   }

   mysql_select_db ( "xxxxxx" , $con ) ;

   $plz = 'SELECT plz FROM Koordinaten';
    $sql_plz = mysql_query($plz);
         
   $plz1 = 'SELECT text_val FROM geodb_textdata WHERE text_type = "500300000" ';
   $sql_plz1 = mysql_query($plz1);
   
   
   If ( $plz = $plz1)
   
   {
    mysql_query('INSERT INTO Koordinaten (lat,lon)
                SELECT
          coo.lat,
          coo.lon
        FROM geodb_coordinates AS coo
        INNER JOIN geodb_textdata AS textdata
        ON textdata.loc_id = coo.loc_id
          WHERE textdata.text_type = "500300000" LIMIT 1 ');
else
{
 
   
   echo "falsch";
   }
   

   
 
mysql_close($con);
 
Zuletzt bearbeitet:
Zurück