我想建立一個INSERT記錄查詢,用戶可以使用兩個下拉菜單向數據庫添加新條目。這樣做的方式是,取決於誰登錄,$ _SESSION變量接管並在下拉菜單中顯示正確的信息。(已解決)INSERT查詢返回TRUE但不起作用?
我想要做的是,一旦學校的工作人員登錄後,選擇了學科領域並選擇了他們想要管理的年份組,它會顯示兩個動態下拉菜單,包含所有可能的教師可以在第一個菜單中教授特定主題,以及在第二個菜單中顯示當年所有主題課程的列表。然後,用戶可以選擇一個教師和一個班級,然後按提交按鈕將查詢發送到數據庫進行錄入。
當通過IF-命令提示測試,如果查詢工作,它識別查詢,就好像它是真實的,回聲的成功線和重定向到前一頁:
$result = $query_addteacher;
if (!$result) {
die('Invalid query:'. mysql_error());
}
else
{ echo "Success!";
header("location:addteachertest.php"); }
但數據實際上還沒有被輸入到數據庫中。下面是兩個下拉菜單中的和查詢代碼:
// Connect Command //
mysql_connect($host, $username, $password) OR die("Can't connect");
mysql_select_db($database_name) OR die("Can't connect to Database");
$teacher = $_POST['teacher'];
$class = $_POST['class'];
// Query to insert data into the staffclass table //
$query_addteacher = "SELECT @staff := idStaff FROM Staff WHERE Staff = '$teacher', @class := idClass
FROM Class WHERE Class = '$class';
INSERT INTO Staffclass (idStaff, idClass)
VALUES ($teacher, $class)";
Teacher:
<select name="teacher" id="teacher" form="addteacher" title="Teacher">
<?php do { ?>
<option value="<?php echo $row_teacherlist['Staff']?>"><?php echo $row_teacherlist['Staff']?>
</option>
<?php
} while ($row_teacherlist = mysql_fetch_array($teacherlist));
$rows = mysql_num_rows($teacherlist);
if($rows > 0)
{
mysql_data_seek($teacherlist, 0);
$row_teacherlist = mysql_fetch_array($teacherlist);
}
?>
</select>
Class:
<select name="class" id="class" form="addteacher" title="Class">
<?php do { ?>
<option value="<?php echo $row_classlist['Class']?>"><?php echo $row_classlist['Class']?></option>
<?php
} while ($row_classlist = mysql_fetch_array($classlist));
$rows = mysql_num_rows($classlist);
if($rows > 0) {
mysql_data_seek($classlist, 0);
$row_classlist = mysql_fetch_array($classlist);
}
?>
</select>
我有一種感覺:有什麼問題我想查詢的操作方式,通過使用簡單的MySQL命令。它在這種格式下工作(雖然老師和班級的變量是不可變的),當我手動輸入到MySQL時,我不知道我通過PHP做錯了什麼。提前謝謝了!
...你什麼時候執行查詢? –
此外 - 您的查詢字符串包含兩個單獨的查詢;如果您使用的是mysql_query,那麼這將不起作用 - 這將允許您一次運行一個查詢。如果你想在一個調用中運行多個查詢,那麼你將不得不使用mysqli_multi_query – andrewsi
我已經設法通過在查詢開始時將兩個變量創建轉換爲INSERT INTO之前的兩個單獨查詢只需調用它們的變量。 –