2017-02-07 43 views
-1

我有一個配料表的列表,其中有成本,商店,包裝,質量等約5-6個值。php&mysql:回聲表值無法重新插入?

然後我將表中的數據回顯到下拉菜單中,以便它們可以選擇。但是,當我更新或重新插入到新表格中時,即使它出現錯誤消息,也會顯示「成本不是默認值」。

所以基本上發生了什麼,是我的下拉菜單不是數據庫值本身,當它的時間使用它來更新它到一個新的表。它的串化和它的價值是全新的。有沒有辦法阻止這種情況的發生,並告訴MySQL或PHP我想要的數據庫值我最初在選擇時放入,而不是它的字符串版本?

<select name="ingredients_list" placeholder="Ingredients"> 
<option disabled selected value> -- select an ingredient -- </option> 
<?php 
    $sql = "SELECT item, store 
      FROM ingredients 
      ORDER BY item"; 
    $result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    while($col = $result->fetch_assoc()) { 
     echo "<option>" . $col['item'] . " (" . $col['store'] . ") " . "</option>"; 
    } 
} 
    ?> 

錯誤消息:

Error: INSERT INTO meal_ingredients (meal_name, item) VALUES ('turkey', 'Bacon (Lidl)') 
Field 'package' doesn't have a default value 

它確實有一個值,但由於其使用字符串化的「臘肉」降下來,而不是數據庫本身的數據它不使用它。

+1

你沒有執行查詢的一個開始.. – Option

回答

0

您試圖爲表列僅插入值的一部分。這列名爲package的一個有NOT NULL約束,因此部分插入

INSERT INTO meal_ingredients (meal_name, item) VALUES ('turkey', 'Bacon (Lidl)') 

不尊重這種限制

可能是你需要

INSERT INTO meal_ingredients (meal_name, item,package) 
     VALUES ('turkey', 'Bacon (Lidl)', 'my_package_value')