0
我有一個INSERT循環,我需要給它添加一個參考數字。我需要循環中的所有參考數字都是相同的。我知道用MAX()我可以選擇表中最高的數字。但是,如果我循環它會增加每個循環,而我需要它保持不變。多次循環中的最大值數
有沒有在查詢本身做到這一點的方法?或者是將其保存在循環外的變量中的唯一方法?
示例代碼:
for($i=2;$i<=$row_count;$i++){ // Loops 3 times (example)
$part = $vehicle.'_part'.$i;
$description = $vehicle.'_description'.$i;
$imageName = $vehicle.'_image'.$i;
$parts[] = array(
'part' => $_SESSION[$part],
'image' => $_SESSION[$part],
'description' => $_SESSION[$description]);
}
foreach($parts as $onePart){
$queries[] = "INSERT INTO searches_tbl (ref_nr, vozila_id, korisnici_id, part, description, image)
VALUES (???, (SELECT id FROM vozila_tbl ORDER BY id DESC LIMIT 1),
(SELECT id FROM korisnici_tbl WHERE email = '".$email_address."' ORDER BY id DESC LIMIT 1), '".$onePart['part']."', '".$onePart['description']."', '".$onePart['image']."')";
}
是要添加任意此參考號碼?爲什麼不直接執行INSERt ...(reference_column,...其他列)VALUES(123,(SELECt ...))? – Trent 2013-03-07 19:12:24
它需要每次增加一個。但不在循環內。所以如果它循環3次,表中最高的數字是100,那麼它需要全部3次。 – 2013-03-07 19:15:22
因此,檢索循環外的最大值。雖然這會給你帶來併發性問題。要做到這一點,唯一的方法就是將所有這些變成一個包裝在一個事務中的查詢。 – Stu 2013-03-07 19:19:04