2013-05-21 64 views
2

我已經在我的代碼使用的if statment但代碼的邏輯,因爲它應該是我要的是不工作,當用戶輸入城市名稱,而無需輸入地區名系統必須顯示錯誤消息使用if語句不工作,因爲它應該

,當用戶輸入城市名稱,並沒有進入lat和長時間的系統必須顯示錯誤消息的地區名。

什麼hapen在我的代碼是,即使用戶進入城市和LAT一個長期,系統顯示錯誤消息通知用戶輸入lat和長

代碼:

if($_POST['city']) 
{ 
    $city = $_POST['city']; 
    $lat = $_POST['lat']; 
    $long = $_POST['long']; 

    if($_POST['dist'] =="") 
    { 
     $errorMSG = "you can not add city without having relation with district"; 
    } 
    if($lat || $long ==""){ $errorMSG = "You can not add village Without its coordination";} 
    else 
    { 
     $sql = mysql_query("INSERT INTO village (id, village_name, district_id, lattitude, longitude)VALUES('', '$city', , '$lat', '$long')")or die(mysql_error()); 
     echo $city; 
    } 
} 
+0

原始[MySQL擴展](http://php.net/manual/en/migration55.deprecated.php)現在已經過時,並且將生成E_DEPRECATED連接到數據庫時發生錯誤。相反,請使用MySQLi或PDO_MySQL擴展。 – 6339

回答

3

if($lat || $long =="")應該if($lat=="" || $long =="")

+0

錯過了幾秒鐘:P –

2

更改此設置: -

if($lat || $long =="") 

if($lat =="" || $long =="") 

說明: -

什麼你做的是檢查是否$ LAT不爲空或$長是空的。瞭解運營商的優先級。 ==具有比||更高的優先級

2

您的代碼很容易受到SQL注入。
而且有它的一些邏輯錯誤。

使用PDO權代碼將是

if($_POST['city']) 
{ 
    $errorMSG = ''; 
    $city = $_POST['city']; 
    $lat = $_POST['lat']; 
    $long = $_POST['long']; 
    $dist = $_POST['dist'] 

    if(!$dist) 
    { 
     $errorMSG .= "you can not add city without having relation with district"; 
    } 
    if(!$lat || !$long) 
    { 
     $errorMSG .= "You can not add village Without its coordination"; 
    } 

    if (!$errorMSG) 
    { 
     $sql = "INSERT INTO village VALUES(NULL, ?, ?, ?, ?)"; 
     $pdo->prepare($sql); 
     $pdo->execute(array($city,$dist,$lat,$long)); 

    } 
} 
+0

先生亞姆新於一般的,但我看到用mysql或數據庫那麼容易學習PDO感謝您的幫助,什麼是更好的使用庫MySQLi或PDO ??? – LebDev

+0

如果我有讀取查詢或做NUM _rows如何使用它在我的代碼? – LebDev

+0

完全和你用mysql做的一樣 - 發現自己的教程可以學習並記住手冊頁是你最好的朋友 –