我有一个使用HTML表单和PHP代码的小型数据库项目。除了最后一部分,它运行正常。基本上,我已经建立了数据库连接并在PHP中工作,并且在单击“添加”按钮时,它应该将表单中的值插入数据库。我的老师说,由于表的限制,必须按一定顺序插入它,基本上首先要对表进行寻址,然后再对人员表进行寻址。如果我注释掉了代码的人员部分,则每次都会自动显示成功的确认页面,并且该地址以自动递增的address_id出现在数据库中。问题是我应该查询一个MAX(Address_id)并将其用于插入人员部分,因为它使用address_id作为外键。当我这样做时,我在更新级联上收到外键约束错误。如果我完全拔出INSERT员工代码,并放置一个“调试”以打印MAX(address_id),它将正确打印。我只是无法让它正确地插入人员表,以便表单中的所有内容都创建人员记录。这是代码:
$userQuery = "INSERT INTO address (address, district, city_id, postal_code, phone)
VALUES ('$address', '$district', '$city', '$postal_code', '$phone') ";
$addressResult = mysqli_query($connect, $userQuery);
if (!$addressResult)
{
die("Could not successfully run query ($userQuery) from $db: " .
mysqli_error($connect) );
}
$maxQuery = "SELECT MAX(address_id) FROM address";
$result = mysqli_query($connect, $maxQuery);
$row = mysqli_fetch_assoc($result);
if (!$result)
{
die("Could not successfully run query ($userQuery) from $db: " .
mysqli_error($connect) );
}
/**else
{
print ("<p>Average hourly wage:".$row['MAX(address_id)']."</p>");
}**/
$userQuery1 = "INSERT INTO staff (first_name, last_name, address_id, email, store_id)
VALUES ('$first_name', '$last_name', '$row', '$email', '$store_id')";
$staffResult = mysqli_query($connect, $userQuery1);
if (!$staffResult)
{
die("Could not successfully run query ($userQuery1) from $db: " .
mysqli_error($connect) );
}
else
{
print(" <h1>New Staff Record Added!</h1>");
print ("<p>The following record was added:</p>");
print("<table border='0'>
<tr><td>First Name</td><td>$first_name</td></tr>
<tr><td>Last Name</td><td>$last_name</td></tr>
<tr><td>Email</td><td>$email</td></tr>
<tr><td>Store ID</td><td>$store_id</td></tr>
<tr><td>Address</td><td>$address</td></tr>
<tr><td>City</td><td>$city</td></tr>
<tr><td>District</td><td>$district</td></tr>
<tr><td>Postal Code</td><td>$postal_code</td></tr>
<tr><td>Phone</td><td>$phone</td></tr>
</table>");
}
最佳答案
您没有调用正确的关联索引。您只是在调用数组:
关于php - PHP/MYSQL选择一个MAX值并将其用作插入值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40751983/