操纵数据库

时间:2016-02-22 06:10:26

标签: php mysql

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。你们认为这是个好主意吗?如果是这样,执行它的最佳方式是什么?如果没有,一个更有经验的程序员将如何解决这个难题?

1 个答案:

答案 0 :(得分:1)

我认为此问题与您的查询有关:Multiple Updates in MySQL

您可以将ON DUPLICATE KEY UPDATE与INSERT语句结合使用。