首先请原谅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`

.

08-19 01:47