簡體   English   中英

PHP / MYSQL選擇一個MAX值並將其用作插入值

[英]PHP/MYSQL Selecting a MAX value and using it as an inserted value

我有一個使用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>");
}

您沒有調用正確的關聯索引。 您只是在調用數組:

$userQuery1 = "INSERT INTO staff (first_name, last_name, address_id, email, store_id) VALUES ('$first_name', '$last_name', '{$row['MAX(address_id)']}', '$email', '$store_id')";

檢查您的查詢。 您無法從數據庫正確獲取數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM