[英]How to get a value from select form into SQL query
我有一個用戶登錄的項目,然后可以回答多個測驗。 這些測驗有一個 select 表格,他們可以在其中 select 他們想要多少問題。 我的問題是當他們 select 他們想要多少問題時,我不知道如何將其轉換為 PHP 變量,然后在 SQL QUERY 中使用它。 我的 SQL QUERY 看起來像這樣:
SELECT questions FROM quiz_questions ORDER BY RAND() LIMIT=?
請在回答問題時解釋一下謝謝:)
我試圖將 select 形式的變量設置為 $number。 但是當我嘗試用 echo 測試它時,我什么也沒得到。我使用 iframe 因為我需要不重新加載頁面,因為我稍后有一些 javascript 功能。
<form target="frame" action="UvodniNivo.php" method="post">
<div class="center">
<label>izberite št. vprašanj: </label>
<select name="number" id="value">
<option value="5">5</option>
<option value="10">10</option>
<option value="15">15</option>
</select>
</div>
<button onclick="hide()" name="start-btn" type="submit">Začni</button>
</form>
<iframe name="frame"></iframe>
<!--Start of the quiz-->
<div id="SHOW">
<?php
if(isset($_POST['start-btn'])){
$select="SELECT * FROM quiz_question ORDER BY RAND() LIMIT=?";
$result= mysqli_query($conn, $select);
$count= mysqli_num_rows($result);
if($count < 1)
{
echo "ERROR";
}
else
{
while($row= mysqli_fetch_array($result))
{
echo $row[2]."<br />";
}
}
?>
</div>
編輯: $conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
DB_HOST、DB_USER、DB_PASS、DB_NAME 都具有正確的值,因為登錄/注冊工作。
首先,您使用的是准備好的語句,因此您必須初始化一個 stmt,准備語句,將語句與參數綁定並執行..
<?php
if(isset($_POST['start-btn'])){
$select="SELECT * FROM quiz_question ORDER BY RAND() LIMIT=?";
$numOfQuestions = $_POST['number']; //make sure you sanitize this
$q = mysqli_stmt_init($conn);
mysqli_stmt_prepare($q, $select);
mysqli_stmt_bind_param($q, 'i', $numOfQuestions );
mysqli_stmt_execute($q);
$result = mysqli_stmt_get_result($q);
if (mysqli_num_rows($result) != 0) {
// do stuff here
}
?>
$number = $_POST['number'];
限制 = $數字;
SELECT * FROM quiz_question ORDER BY RAND() LIMIT=?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.