2016-02-22 7 views
0

My entry form У меня есть база данных инвентаря с таблицами, такими как алюминий, железо и т. Д. Каждая таблица содержит подкатегорию таких элементов, как aluminium_pala, iron_1.5inch и т. Д. Ввода кода, как это:Правильный способ управления базой данных

include("dbConnect.php"); 
$orderNo = $_POST["number"]; 

if(isset($_POST["mat1"])&&$_POST["mat1"]!=NULL) 
{ 
    $mat1 = $_POST["mat1"]; 
    $selmat1 = $_POST["selmat1"]; 
    $amtmat1 = $_POST["amtmat1"]; 

    $query = "INSERT INTO $mat1 ($selmat1,orderNo) VALUES (-$amtmat1,$orderNo);"; 
    if(!($result = $mysqli->query($query))) 
     print "<div class='error'>insertion failed. Check your data</div>"; 
} 
if(isset($_POST["mat2"])&&$_POST["mat2"]!=NULL) 
{ 
    $mat2 = $_POST["mat2"]; 
    $selmat2 = $_POST["selmat2"]; 
    $amtmat2 = $_POST["amtmat2"]; 

    $query = "INSERT INTO $mat2 ($selmat2,orderNo) VALUES (-$amtmat1,$orderNo);"; 
    if(!($result = $mysqli->query($query))) 
     print "<div class='error'>insertion failed. Check your data</div>"; 
}... and it goes on till mat11 

Я пытаюсь собрать каждую подобную таблицу (MAT1, MAT2 ..) и их соответствующий пункт (selmat1, selmat2 ...) и кучу Все в один запрос. То есть, вместо того, чтобы идти

INSERT INTO al_openable (zPala,orderNo) VALUES (23,14); 
INSERT INTO al_openable (outer,orderNo) VALUES (50,14); 

Я пытаюсь выполнить его как

INSERT INTO al_openable (zPala,outer,orderNo) VALUES (23,50,14); 

мне нужно это, чтобы избежать дублирования внешнего ключа записи (за $ OrderNo). Одна из идей, которую я рассматривал, - это использовать UPDATE, если номер заказа уже существует. Вы, ребята, думаете, что это хорошая идея? И если да, то какой будет лучший способ ее выполнения? Если нет, как бы более опытный программист решил эту головоломку?

+0

Сохраните только одну таблицу с этими полями: 'zPala, внешний, orderN', а затем введите соответственно –

+0

. Пожалуйста, прочтите мой вопрос. У меня уже есть эта таблица. Проблема заключается в объединении запросов для одинаковых таблиц. –

ответ

1

Я думаю, что этот вопрос связан с запросом: Multiple Updates in MySQL

Вы можете использовать дублирование KEY UPDATE в сочетании с INSERT заявлением.

+0

О, хорошее и простое решение. Я не мог найти его нигде. Спасибо. –