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 :(得分:1)
我认为此问题与您的查询有关:Multiple Updates in MySQL
您可以将ON DUPLICATE KEY UPDATE与INSERT语句结合使用。