Я изучаю PHP / MySQL и создаю базу данных для школьных занятий.Мне пришлось переделать мои таблицы с идентификационными номерами в качестве ПК, что отчасти отбросило меня назад.У меня есть выпадающие меню в формах добавления записей, где применяются отношения, которые генерируются из других таблиц.Раньше они работали нормально, но теперь, поскольку мои внешние ключи должны быть числами, он не распознает текст в раскрывающемся списке.
Существуют ли способы использования определенного значения в качестве параметра раскрывающегося списка вформа, и в моем запросе INSERT на самом деле добавить номер идентификатора в его месте?Скажем, если бы у меня был «Джон Смит» с WriterID, равным 12, мог бы мой код добавить 12, но пользователь увидит имя?Я ломал голову над этим с раннего утра.
Вот код вставки и необходимых частей моей формы, и самого запроса (на отдельных страницах в моем коде).В то время, когда я копировал это, я играл с GET вместо POST для двух последних вариантов.Я также попробовал несколько отдельных запросов SELECT во второй части, поэтому не стесняйтесь сообщать мне, если что-то не нужно.Заранее спасибо.
ФОРМА
$con = mysql_connect(localhost,$username,$password);
mysql_select_db($database) or die("Unable to select database");
$result = @mysql_query("select WriterID, WriterName from dbase.writer2");
print("Writer: ");
print("<select name=\"WriterName\">\n");
while ($row = mysql_fetch_assoc($result))
{
$WriterName = $row['WriterName'];
print("<option value = " . $row['WriterID'] . ">$WriterName\n");
}
print("</select>\n");
print("<a href=\"insert_writer.php\">If Writer not in list, add here</a>\n");
print("<br>\n");
$result = @mysql_query("select PublisherID, PublisherTitle from dbase.publisher2");
print("Publisher: ");
print("<select name=\"PublisherTitle\">\n");
while ($row = mysql_fetch_assoc($result))
{
$PublisherTitle = $row['PublisherTitle'];
print("<option value = " . $row['PublisherID'] . ">$PublisherTitle<br\n");
}
print("</select>\n");
print("<a href=\"insert_publisher.php\">If Publisher not in list, add here</a><br>\n");
mysql_close($con);
<input type="Submit" value="Submit">
</form>
print("<a href=\"demo13.php\">Back to Main</a><br>\n");
print("<a href=\"add.php\">Add Records Page</a><br>\n")
QUERY
//retreiving the form text fields and assigning a variable to them
$SeriesName=$_POST['SeriesName'];
$SeriesGenre=$_POST['SeriesGenre'];
$NumberOfVolumes=$_POST['NumberOfVolumes'];
$MainWriter=$_GET['WriterID'];
$SeriesPublisher=$_GET['PublisherID'];
//using the aformentioned variables for the credentials in order to access the database
$con = mysql_connect(localhost,$username,$password);
mysql_select_db($database) or die("Unable to select database");
$query = "SELECT writer2.WriterID FROM writer2
WHERE series2.MainWriter = writer2.WriterID";
$MainWriter = mysql_query($query);
$query = "SELECT publisher2.PublisherID FROM publisher2
WHERE series2.SeriesPublisher = publisher2.PublisherID";
mysql_query($query);
$SeriesPublisher = mysql_query($query);
//Using SQL code to insert the information into the database.
$query = "INSERT INTO series2 (SeriesName,SeriesGenre,NumberOfVolumes,MainWriter,SeriesPublisher)
VALUES('$SeriesName','$SeriesGenre','$NumberOfVolumes','$MainWriter','$SeriesPublisher')";
//running the SQL code and closing the database connection.
mysql_query($query);
if (mysql_affected_rows($con) == -1)
{
print("An error has occured. Record insert failed " . mysql_error() . "<br\n");
}
else
{
print("<b>Record entered successfully</b><br>\n");
print("$SeriesName<br>\n" .
"$SeriesGenre<br>\n" .
"$NumberOfVolumes<br>\n" .
"$WriterName<br<\n" .
"$PublisherTitle");
print("ID for this record: " . mysql_insert_id() ."<br>\n");
}
mysql_close($con);
print("<a href=\"demo13.php\">Back to Main</a><br>\n");
print("<a href=\"insert_series.php\">Add Another Series</a><br>\n");
print("<a href=\"add.php\">Add Records Page</a><br>\n")