2014-01-27 28 views
-1
<?php 

require_once "includes/db_connection.php"; 

$sqlCommand = "SELECT * FROM table1 WHERE questionId = $id"; 

$query = mysqli_query($db_connection, $sqlCommand) or die (mysqli_error()); 

$num_rows = mysqli_num_rows($query); 

echo "Tabela sadrzi " . $num_rows . " redova."; 

mysqli_free_result($query); 

mysqli_close($db_connection); 
?> 

有了這種類型的代碼,我有WHERE questionId = $id語句,它給了我一個錯誤Undefinded index Id,而mysqli_error()只需要1個參數。我看到很多時間,不知何故,我解決了一個問題,但現在我真的不現在。我是新的,仍在學習,但我真的沒有想法。如果我刪除這WHERE questionId = $id它正在工作,它顯示了它有多少行,但我需要這個Where語句,它可以告訴我,有多少記錄是特定的ID。這段代碼有什麼問題?選擇數量和地點?

+0

問題類型問題ID –

+1

但是,你在哪裏定義特定的ID「$ id」? – Rikesh

+1

您必須傳遞'$ id'參數才能查詢。 –

回答

0

有兩個問題和兩個答案。

首先是您需要定義$id。它沒有在你的頁面的任何地方定義。如果您在發佈或獲取變量,那麼你可以使用:根據

$id = $_POST['id']; 

$id = $_GET['id']; 

其是否GET或POST。

你還應該清理來自用戶的任何輸入,永遠不要接受它會沒事的。最好的方法之一就是過濾它。

$id = filter_input(INPUT_POST, "id", FILTER_VALIDATE_INT); 

,將返回一個整數或者FALSE如果不是int以外的任何其他在ID。


第二個問題是您的mysqli_error()。你需要通過在資源鏈接,所以它應該是:

$query = mysqli_query($db_connection, $sqlCommand) or die (mysqli_error($db_connection)); 
+0

祝你好運。我**從不**填入答案,直到我知道完整的圖片是什麼樣子。 ;-) –

+0

@ Fred-ii-你總是可以編輯答案。這個問題看起來相當明顯。 – Styphon

+0

的確如此,但如果我完全確定,我只能編輯。在這種情況下,OP沒有指定'$ id'的來源。我是個黑暗中的可怕鏡頭;-) –

0

正如Fred說,你可能有不同的PHP配置,其中request數據自動預定義。通常情況下,你需要自己定義$id

<?php 

require_once "includes/db_connection.php"; 

# It might be ID or QUESTIONID or something similar 
$id = $_POST['id']; 
if (!$id) $id = $_GET['id']; 

/* You can also add ' around your request, 
to prevent error when the id is actually not present at all */ 
$sqlCommand = "SELECT * FROM table1 WHERE questionId = '$id'"; 

$query = mysqli_query($db_connection, $sqlCommand) or die (mysqli_error()); 

$num_rows = mysqli_num_rows($query); 

echo "Tabela sadrzi " . $num_rows . " redova."; 

mysqli_free_result($query); 

mysqli_close($db_connection); 

?> 

而且不要忘了清理他們使用,以防止sql injections之前。

+0

感謝您的提及。然而,你的'[id]'需要'['id']';-) –

+0

並基於OP的[其他問題](http://stackoverflow.com/q/21239423/),它似乎是'$ id'可以被稱爲'listaOdgovora'。但會坐下來等待這一個。 –

+0

感謝您注意,但這不是要求,更像是對良好實踐的建議。 – Peon