2017-07-04 55 views
-1

好了,所以我意識到這對好的程序員來說可能看起來很瘋狂,但我是一個noob,只是想弄清楚基礎知識。我試圖建立一個簡單的問題/答案網站。我可以向db提交一個問題,但是當我指示用戶回答時,我需要將正確的問題id(q_id)作爲我的答案表中的外鍵。我無法找到任何在線解決這個問題。我相信我會得到「不使用mysqli_query」或其他東西,但如果任何人都可以幫助我理解如何獲得傳遞給q_id的正確值,那將是一個很大的幫助。看到下面是我的PHP代碼可能會是有意義什麼,我試圖做的:php變量中的SQL語句?

//set up connection credentials 
$servername = "127.0.0.1"; 
$username = "root"; 
$password = ""; 
$dbname = "ask"; 

// Create connection 
$conn = mysqli_connect($servername, $username, $password, $dbname); 
// Check connection 
if (!$conn) { 
die("Connection failed: " . mysqli_connect_error()); 
} 
//gather the data from the form 
$answer = $_POST["answer"]; 
$q_id = mysqli_query($conn,"select q_id from questions order by q_id 
desc limit 1"); 


$sql = "INSERT INTO answers (answer, q_id) VALUES ('$answer', 
    '$q_id')"; 
if (mysqli_query($conn, $sql)) { 

echo "answer submitted"; 




} else { 
echo "Error: " . $sql . "<br>" . mysqli_error($conn);} 



?> 

回答

0

當您打開顯示有問題的網頁,你已經使用q_id,只要再次使用它。

像計算器URL,問題編號爲上的網址: https://stackoverflow.com/questions/44896448/sql-statement-in-php-variable

因爲你不知道的還重新寫的,所以你可以用$ _GET方法來獲取q_id。

編輯:

User insert_id;要提交問題後得到最後一個身份證,然後你得到了問題的ID

if (mysqli_query($conn, $sql)) { 
$last_id = $conn->insert_id; 
echo "answer submitted, id is ".$last_id; 




} else { 
echo "Error: " . $sql . "<br>" . mysqli_error($conn);} 



?> 
+0

ahh我沒想到$ _GET我會試試這個。謝謝! – do734

+0

問題:那麼如何將用戶ID(在我的情況下是q_id)傳遞給url?我可以讓表單提交一個問題,get方法在url中發佈它,但是這個ID不在url中?我有它在我的數據庫中設置爲自動增量,當我有用戶輸入的問題,它會去我的數據庫,但ID只在數據庫中不是在URL? – do734

+0

@ do734更新! –