Я пытаюсь создать запрос записи INSERT, где пользователь может добавлять новые записи в базу данных, используя два раскрывающихся меню. Способ, которым это работает, заключается в том, что в зависимости от того, кто вошел в систему, переменные $ _SESSION берут верх и показывают правильную информацию в раскрывающихся меню.(SOLVED) Запрос INSERT возвращает TRUE, но не работает?
Я хочу, чтобы это произошло, когда пользователь штата из школы вошел в систему, выбрал предметную область и выбрал группу Year, которой они хотят управлять, в ней отображаются два динамических выпадающих меню со всеми возможными преподавателями которые могут преподавать этот конкретный объект в первом меню и список всех тематических классов в этом году во втором меню. Затем пользователь может выбрать преподавателя и класс и нажать кнопку отправки, чтобы отправить запрос в базу данных для входа.
При запросе 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 one и просто вызовите вместо них свои переменные. –