0

我有 3 个表省区村,我希望能够在每个表中插入值......但我需要首先检查用户输入是否为空,以便省字段能够插入区并检查区域字段的用户输入是否不为空,以允许用户输入村庄值及其坐标..

所以我写了这段代码,但它不能像我想要的那样工作任何人都可以帮助我???看看我在哪里做错了。

到目前为止,我只是为要添加的村庄和要删除的省编写代码

即使插入了值,系统也会显示错误消息:您必须在提交之前填写这些字段之一!

代码

 if(isset($_POST['add']))
   {
       if(isset($_POST['city']) || isset( $_POST['lat']) || isset($_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());

           }
       }

   }
/////******************for remove****************************************************//
/////********************************************************************************//
   if(isset($_POST['remove']))
   {
       if($_POST['gov'])
       {
           $gov = $_POST['gov'];
           $sql = mysql_query("DELETE FROM governorate WHERE governorate_name = '$gov'")or die(mysql_error());
       }
   } 
4

1 回答 1

0

就您的错误消息而言,'...即使插入了值,系统也会显示错误消息:您必须在提交之前填写这些字段之一!!...'

你的条件是错误的。改变

if(isset($_POST['city']) || isset( $_POST['lat']) || isset($_POST['long']) == "" )

if ((!isset($_POST['city']) || $_POST['city'] == "") 
 && (!isset($_POST['lat'])  || $_POST['lat'] == "" )
 && (!isset($_POST['long']) || $_POST['long'] == "")) {

附带说明:您的代码容易受到 sql 注入的攻击。切换到 mysqli 或 PDO 并学习准备好的语句。

于 2013-06-04T20:15:44.123 回答