首先请原谅mysql的使用,我很感激它被贬值了,但出于完全荒谬的原因,我不得不在这个项目中使用它。
所以我用这个函数在数据库中填充了一个下拉菜单
函数.php
function artistQuery(){
$myData = mysql_query("SELECT * FROM artists");
while ($record = mysql_fetch_array($myData)){
echo '<option value="' . $record['artistID'] . '">' . $record['artistFirst'] . ' ' . $record['artistSurname'] . '</option>';
}
它填充下拉菜单:
新产品.php
<h1>New Product Entry:</h1>
<form action="php/addproduct.php" method="_POST">
<p>Please select the artist:</p>
<select name="artist">
<?php artistQuery();
?>
</select>
</form>
所以从我的函数中,虽然显示了艺术家的名字和姓氏,但选项值实际上是artistID。
然后我用
添加产品.php
<?php
include_once 'php/dbconn.php';
connect();
$artist = $_POST['artist'];
$query = "INSERT INTO products ('artistID') VALUES ('$artist')";
//execute query
$result = mysql_query($query) or die("Error in Query. $query. " . mysql_error());
echo "$artist";
?>
将artistID写入数据库,除非它没有写入。
我假设问题出在newprod.php(中间代码块)的某个地方,没有将artistID分配给“artist”的名称。
感谢你们的一切帮助。
编辑:缺少字母!
最佳答案
在addproduct.php中,尝试以下操作:
$query = "INSERT INTO products (artistID) VALUES ('$artist')";
不带引号的列名(错误):
$query = "INSERT INTO products ('artistID') VALUES ('$artist')";
在Access数据库中,MySQL列名既不能是单引号“artistID”,也不能是双引号“artistID”,也不能是[artistID]。它必须是裸名artistID,或者是反引号
`artistID`
当列名中有空格,如
`Artist Name`
.