我有多個輸入字段具有相同的名稱,ID和其他領域與其他的名字,如更新在一個循環中的SQL多行
<input name="id[]" value="1" /> <input name="st[]" value="4" />
<input name="id[]" value="5" /> <input name="st[]" value="57" />
<input name="id[]" value="79" /> <input name="st[]" value="43" />
.
.
.
在我的SQL表我想改變...也許id-> 3和id-> 87或其他10個用右側輸入字段的值更新列「st」的值。 id和st的關鍵值是相同的。 我知道一行的update-sql-syntax。但是,如果我想更多的行,我不知道該怎麼辦
我的理由是這樣做的jQuery的Ajax或PHP內爆類似
$id = implode(',', $_POST['id']);
$st = implode(',', $_POST['st']);
$sql = "UPDATE table SET st=('$st') WHERE id=('$id')";
後來我發現這個從用戶peterm
UPDATE table
SET st = CASE id
WHEN 'id_x' THEN 'st_x'
WHEN 'id_y' THEN 'st_y'
...
ELSE st
END
WHERE id IN('id_x', 'id_y', ...);
我如何得到它自發地從我的網站用戶在一個循環(foreach?)
什麼是代碼中的** st **? – aldrin27
最好做在PHP中的foreach,而不是在mysql中。在執行注射更新語句之前,請不要忘記檢查您的數據。 – Daniel
** st **只是一個像id列一樣的列名。 – kuki