簡體   English   中英

多個下拉值創建SQL查詢PHP

[英]Multiple dropdown values to create SQL query PHP

我目前正在嘗試創建一個表單,其中包含三個下拉選項框和一個提交按鈕。 從數據庫中填充了所有這三個下拉框,我希望將選定的選項包含到新查詢中並進行打印。 此示例僅顯示一個下拉列表

PHP代碼

// Create connection
$con=mysqli_connect('', '', '', '');

// Check connection
if (mysqli_connect_errno($con))
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$course_dropdown ="";
$query_course = "SELECT * FROM course";
$result_course = mysqli_query($con,$query_course) or die(mysqli_error());

while($row = mysqli_fetch_assoc($result_course))
{
    $course_dropdown .= "<option value='{$row['CourseName']}'{$row['CourseName']}           </option>";
}

上面是用於創建下拉列表的代碼

HTML

<form="index.php" method="post">
<select name="Course"><?php echo $course_dropdown; ?></select>
<input name="button" value="Submit" type="submit">

我對前進的方向不知所措,我嘗試了各種不同的技術,但無法給出答案。

最新嘗試

$course = mysqli_real_escape_string($con, $_POST['Course']);
$query = mysqli_query($con,"SELECT * FROM course_module WHERE CourseName = $course"); 

這帶來了一個錯誤

注意:未定義的索引:第33行的C:\\ Users \\ seanin \\ Desktop \\ xampp \\ htdocs \\ index.php中的課程

因此,按照建議進行編輯,並且stil出現錯誤,可能缺少一些小東西。

// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$course_dropdown ="";
$query_course = "SELECT * FROM course";
$result_course = mysqli_query($con,$query_course) or die(mysqli_error());

while($row = mysqli_fetch_assoc($result_course))
{
$course_dropdown .= "<option value='{$row['CourseName']}'>{$row['CourseName']}</option>";
} 

if ($_POST['button'] == 'Submit') {
$course = mysqli_real_escape_string($con, $_POST['Course']);
$query = mysqli_query($con,"SELECT * FROM course_module WHERE CourseName = $course"); 
}

仍然有這個錯誤

注意:第30行的C:\\ Users \\ seanin \\ Desktop \\ xampp \\ htdocs \\ index.php中的未定義索引:按鈕

提交按鈕問題


差不多完成了,感謝到目前為止的所有幫助。

我需要怎么做才能得到結果並打印出來???

請閱讀有關SQL注入的信息 它們會破壞您的生活。

我認為您正在嘗試在以下行中訪問“課程”,並且未定義它:

$course = mysqli_real_escape_string($con, $_POST['Course']);

您可以提交頁面嗎? HTML表單中存在錯誤: <form="index.php"不是有效的HTML標記,因此您無法提交頁面,也就是說,如果您張貼了正在使用的確切代碼。 您的表格應為:

<form action="index.php" method="post">
<select name="Course"><?php echo $course_dropdown; ?></select>
<input name="button" value="Submit" type="submit">
</form> <!-- and don't forget the closing tag -->

您可以通過執行以下操作來檢查頁面是否已提交:

if ($_POST['button'] == 'Submit') {
    $course = mysqli_real_escape_string($con, $_POST['Course']);
     // please note the missing single quotes, and please read the first line of my answer
    $query = mysqli_query($con,"SELECT * FROM course_module WHERE CourseName = '$course'");
}

以下行中還有一個無效的HTML語法:

$course_dropdown .= "<option value='{$row['CourseName']}'{$row['CourseName']}           </option>";

<option>的格式為: <option value="value">label</option>

您的下拉列表不起作用的原因是缺少“>”,用此替換while循環內的行

$course_dropdown .= "<option value='{$row['CourseName']}'>{$row['CourseName']}</option>";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM