2015-02-11 77 views
1

你好,我需要一些幫助,我的查詢。查找重複,sql不起作用

一些解釋我的表名從荷蘭到英國: Beantwoordevraag - answeredquestion, Toets - 考試, vraagvraagid - questionid, toetsessieid - examsessionid。

$sql = "SELECT antwoord FROM Beantwoordevraag WHERE ToetssessieID = '$sesID' AND VraagvraagID = '$vid' LIMIT 1"; 

$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
      echo "There already is an exisiting answer to this question"; 
} 

else{ 
    $sql2="INSERT INTO `test`.`Beantwoordevraag` (`bvID`, `resultaat`,`VraagvraagID`, ToetstoetsID`, `AccountaccountID`, `antwoord`, `datum`,`ToetssessieID`) 
      VALUES (NULL, 'y','$vid', '$id', '1', '$ingevulde_antwoord', CURRENT_DATE(),$_SESSION[sessionID]);"; 
} 

我沒有收到「這已經存在」的文本,即使它重複也仍然插入。

非常感謝。 enter image description here

enter image description here

+0

在我看來,你只設置變量'$ sql2'在else分支,但你在其他地方執行你的sql。難道你不可能在其他地方設置其他變量,因此你總是執行該查詢?編輯:我讀你的答案錯了:我讀「我得到一個'這是已經存在的'文本'。對不起 – 2015-02-11 15:43:39

+0

偏題:關於SQL中命名約定的好文章(https://launchbylunch.com/posts/2014/Feb/16/sql-naming-conventions/)。祝你好運! – mineroot 2015-02-11 15:54:09

回答

2

$query->num_rows應該是一個功能$query->num_rows()

編輯:

添加此打印:

$sql = "SELECT antwoord FROM Beantwoordevraag WHERE ToetssessieID = '$sesID' AND VraagvraagID` = '$vid' LIMIT 1"; 
echo $sql; 
$result = $conn->query($sql); 
var_dump($result); 
+0

也沒有真正的工作.. – Elvira 2015-02-11 18:38:02

+0

你在$結果中獲得一些價值?也許你的查詢沒有正確生成。通過命令提供更多關於你的表格的信息描述Beantwoordevraag; =) – mgamon 2015-02-12 07:44:38

+0

我已經添加了描述信息的img。 – Elvira 2015-02-12 09:06:01