0

私は2つのテーブルを持っています

区域

  • 地区 ID
  • 地区名

と村

  • ID

  • 村の名前

  • 地区 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());

           }
       }

   }
4

3 に答える 3

1

これを使用している場合はAUTO_INCREMENT、問題を解決する必要があります

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

また、注入に対する何らかの保護を追加することをお勧めします

于 2013-06-06T08:18:19.690 に答える
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());
于 2013-06-06T08:19:45.743 に答える
0

地区IDフィールドに地区を挿入しています。ランダムな文字列をIDに挿入しようとしているため(数値...希望)、代わりに0が追加されます。

district_id フィールドに最後に挿入された ID を見つけて、2 番目の挿入で $dist の代わりにそれを挿入する必要があります。

于 2013-06-06T08:19:58.987 に答える