我有这段代码,它从数据库中获取类别并将其显示在下拉菜单上。现在,我想做的是,当选择某些内容并按下按钮 isset
时,获取该类别的 ID(表:categories
,row category_id
)然后将其提交到(表:posts
,行category_id
)。我不知道如何获取在下拉列表中选择的类别的 ID。谢谢。
$db
变量是数据库连接。
这就是我到目前为止所得到的。这是向数据库提交数据:
include('../includes/db_connect.php');
if(isset($_POST['submit'])){
$newTitle = $_POST['newTitle'];
$newPost = $_POST['newPost'];
$newCategory = $_POST['newCategory'];
$my_date = date("Y-m-d H:i:s");
if(!empty($newPost))
if(!empty($newTitle)){
$sql="INSERT INTO posts (title, body, category_id)
VALUES('$newTitle', '$newPost', '$newCategory')";
$query = $db->query($sql);
if($query){
echo "Post entered to database";
}else{
echo "Error Submitting the data";
}
}
}
这是选择:
<textarea name="newPost" cols="176" rows="25"/></textarea><br>
<select name=""="newCategory" id="newCategory">
<option value="0">Select category</option>
<?php
$result = mysqli_query($db, "SELECT * FROM categories");
if ( $result ) {
while( $row = mysqli_fetch_array($result, MYSQLI_ASSOC) ) {
echo '<option value="' . $row['category'] . '">' . $row['category'] . '</option>';
}
} else {
echo 'Couldn\'t fetch Categories from MySQL.';
}
?>
Ps - 我知道这很容易注入(inject),你不需要告诉我,请回答问题:)
最佳答案
您很可能只需要更改此行,并将 value
设为类别主键,例如 id
或任何名称。
echo "<option value='{$row['id']}'>{$row['category']}</option>";
否则提交后,您将必须运行 mysql 查询,通过搜索 category='$newCategory'
id
关于php - 将动态信息插入数据库(动态下拉菜单),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18788846/