2013-06-06 53 views
0

插入ID我有2個表不能插入查詢詞使用PHP

  • district_id
  • district_name

,村

  • ID

  • 村_name

  • district_id

    我想插入值表..以及與插入查詢工作的村臺,但district_的價值沒有得到id的值插入分區表中,而不是顯示0.

任何人都可以幫助我嗎?

代碼:

if(isset($_POST['add'])) 
    { 
     if ((!isset($_POST['city']) || $_POST['city'] == "") 
      && (!isset($_POST['lat'])|| $_POST['lat'] == "") 
      && (!isset($_POST['long'])|| $_POST['long'] == "")) 
     { 
     $errorMSG = "you must fill one of these fields befor you submit!!"; 
     } 
     /* 
     if($_POST['gov']) 
     { 
      $gov = $_POST['gov']; 
      $sql = mysql_query("INSERT INTO governorate (governorate_id, governorate_name)VALUES('', '$gov')")or die(mysql_error()); 
      echo $gov; 
     } 
     //******for adding district********************* 
     elseif($_POST['dist']) 
     { 
      $dist = $_POST['dist']; 
      $gov = $_POST['gov']; 
      if($gov) 
      { 
      $sql = mysql_query("INSERT INTO districts (district_id, district_name, governorate_id)VALUES('', '$dist', '$gov')")or die(mysql_error()); 

      $sql = mysql_query("INSERT INTO governorate (governorate_id, governorate_name)VALUES('', '$gov')") or die(mysql_error()); 

      echo $dist; 
      } 
      else{ $errorMSG = "You can not add District Without relate a Governorate for this district";} 
     } 
     */ 
     //********************for adding city****************************// 

    if($_POST['city']) 
     { 
      $city = mysql_real_escape_string($_POST['city']); 
      $lat = mysql_real_escape_string($_POST['lat']); 
      $long = mysql_real_escape_string($_POST['long']); 
      $dist = mysql_real_escape_string($_POST['dist']); 
      $gov = mysql_real_escape_string($_POST['gov']); 
      if(!$dist) 
      { 
       $errorMSG = "you can not add city without having relation with district"; 
      } 
      elseif($lat =="" || $long ==""){ $errorMSG = "You can not add village Without its coordinations";} 
      else 
      { 
       $sqld = mysql_query("INSERT INTO districts (district_id, district_name, governorate_id)VALUES('', '$dist', '$gov')") or die(mysql_error()); 
      $sql = mysql_query("INSERT INTO village (id, village_name, district_id, lattitude, longitude)VALUES('', '$city', '$dist' ,'$lat', '$long')")or die(mysql_error()); 

      } 
     } 

    } 
+0

您是否驗證過您實際上是在POST數據中接收到區號? –

回答

1

你需要這樣做。

 $sqld = mysql_query("INSERT INTO districts (district_id, district_name, governorate_id)VALUES('', '$dist', '$gov')") or die(mysql_error()); 

     $dist_id = mysql_insert_id(); 

     $sql = mysql_query("INSERT INTO village (id, village_name, district_id, lattitude, longitude)VALUES('', '$city', '$dist_id' ,'$lat', '$long')")or die(mysql_error()); 
+0

$ dist = mysql_insert_id();這個陳述會在地區的表上插入最後一個ID?但我確實使用了變量$ dist來簽名到**($ _ POST ['dist'])** – LebDev

+0

這將得到從最後一個查詢插入的區號,然後您可以在村莊插入查詢中插入相同的值。 –

+0

@Amar Banerjee謝謝你的幫助 – LebDev

1

如果您正在使用AUTO_INCREMENT這應該解決您的問題

INSERT INTO districts (district_name, governorate_id)VALUES('$dist', '$gov') 

我也建議將保護agains的一些SOR注入

0

你插入區進入小區ID場。既然你試圖在ID中插入一個隨機字符串(數字......我希望),它會添加一個0。

您應該找到插入到district_id字段中的最後一個ID,並在第二次插入時插入該ID而不是$ dist。