Saya mempunyai borang yang mendapatkan semula berbilang baris data, setiap item mempunyai kawasan teks untuk pengguna mengulas pada item tertentu. Bilangan item yang dikembalikan adalah berubah-ubah, dan mereka tidak perlu meninggalkan komen dalam mana-mana/semua kotak.
<textarea name="comment[]" cols="25" rows="2"><?php echo $f2; ?></textarea> <input name="tableid[]" type="hidden" value="<?php echo $f1; ?>">Pernyataan
echo mengisi kawasan teks dengan apa sahaja yang disimpan dalam pangkalan data pada masa ini, kerana pengguna boleh mengubah suai perkara yang telah dimasukkan oleh orang lain.
Apabila ia dihantar ke halaman pemprosesan borang, ia akan mengembalikannya..
Submit: Submit comment: Test Comment 1,Test Comment 2 tableid: 590,591
Jadi ia seolah-olah menghantar tatasusunan dengan betul. Saya menggunakan kod ini untuk mengemas kini pangkalan data
$conn = new PDO("mysql:host=xxxx;dbname=xxxxx",$username,$password); $i = 0; if(isset($_POST['submit'])) { foreach($_POST['comment'] as $comment) { $comment = $_POST['comment'][$i]; $id = $_POST['tableid'][$i]; $stmt = $conn->prepare("UPDATE reservations SET comment=:comment WHERE tableid=:id"); $stmt->bindValue(':comment', $comment, PDO::PARAM_INT); $stmt->bindValue(':id', $id, PDO::PARAM_INT); $stmt->execute(); $i++; } }
Namun, ini nampaknya tidak dikemas kini langsung, di manakah silap saya?
Terima kasih banyak-banyak
Beberapa perkara:
PDOException
pada ralat. Ini akan memudahkan penyahpepijatan.Kod: