2014-01-27 88 views
-2

如果sql插入成功,則會顯示「成功」。如果出現錯誤,則會顯示「名稱已被採納」。問題是它在出現錯誤時顯示兩者。正確的If-Else語法

我的PHP代碼如下:

$sql = "INSERT INTO event_calendar (name, detail, place, date, time) VALUES ('$name', '$detail', '$place', '$date', '$time')"; 

if($sql){ 

    echo "<div>"; 
    echo "<p> Success </p>"; 

    }   
    echo '<p>Name is taken</p>'; 
} 
?> 

如何停止無論是從顯示?有任何想法嗎?

+0

是問題不清楚?我怎麼得到-1? – Anthosiastic

+0

首先,您需要檢查名稱或任何其他唯一字段是否已存在於數據庫中。您也可以執行SQL查詢以首先檢查然後插入爲單個查詢。第二種情況下的結果可以像受到「affected_rows」那樣處理....無論如何,考慮到上面的代碼,您很可能不會理解我在說什麼,因爲您還沒有真正發佈過實際的嘗試這一點,沒有什麼可以幫助,除了爲你做工作:) – Onimusha

+0

你甚至執行過你的SQL,或者你只是根據你的SQL的字符串進行比較嗎?我有一種感覺,你已經試圖儘快實現太雄心勃勃的目標。在嘗試處理數據庫交互之前,先從w3schools或code academy學習基本編程。 – Tarmo

回答

0

由於「名取」是不是在別的阻止它會被執行每次。 if($ sql){

echo "<div>"; 
    echo "<p> Success </p>"; 

    }else{   
    echo '<p>Name is taken</p>'; 
    } 
} 
+0

我試圖使用這種方法,它不工作.. – Anthosiastic

+0

http://phptrycatch.blogspot.com/一個「Try/Catch」塊將是我的下一個建議。這試圖執行一行代碼(在'try'塊中),如果拋出異常,它會執行任何在catch塊 –

+0

的謝謝!這是一個很好的方法:) – Anthosiastic