Saya menghadapi masalah mengemas kini pangkalan data. Saya rasa ralat adalah dalam pertanyaan kemas kini itu sendiri, tetapi saya baru menggunakan SQL dan PHP jadi saya tidak pasti 100%. Sebarang bantuan amatlah dihargai.
Saya mendapat ralat indeks yang tidak ditentukan, saya membetulkannya tetapi masalahnya masih wujud:
$id = $_GET["id"]; $listdate = isset($_POST['list_date']) ? $_POST['list_date'] : ''; $listprice = isset($_POST['list_price']) ? $_POST['list_price'] : ''; $solddate = isset($_POST['sold_date']) ? $_POST['sold_date'] : ''; $soldprice = isset($_POST['sold_price']) ? $_POST['sold_price'] : ''; $shipdate = isset($_POST['ship_date']) ? $_POST['ship_date'] : ''; $shipcost = isset($_POST['ship_cost']) ? $_POST['ship_cost'] : '';
Selepas menukar kepada kod di atas (yang tidak berfungsi) saya masih menghadapi masalah mengemas kini pangkalan data. Berikut ialah kod semasa yang lengkap:
<? $id = $_GET["id"]; $listdate = $_POST["list_date"]; $listprice = $_POST["list_price"]; $solddate = $_POST["sold_date"]; $soldprice = $_POST["sold_price"]; $shipdate = $_POST["ship_date"]; $shipcost = $_POST["ship_cost"]; $servername = "localhost"; $username = "inventory"; $password = "*****"; $db = "products"; $conn = new mysqli($servername, $username, $password, $db); if ($conn->connect_error){ die("Connection failed: ". $conn->connect_error); } $sql = "UPDATE inventory SET list_date = '$listdate', list_price = '$listprice', sold_date = '$solddate', sold_price = '$soldprice', ship_date = '$shipdate', ship_cost= '$shipcost' WHERE product_id = ' .$id. '"; if($conn->query($sql) === TRUE){ echo "Record Saved."; } else { echo "Error!"; } $conn->close(); ?>
Walaupun saya menukar ID secara manual kepada yang diberikan oleh pangkalan data, kemas kini masih tidak berfungsi dan tiada perubahan dalam pangkalan data. Saya tahu borang itu tidak kelihatan cantik, tetapi saya menyediakannya sebagai ujian. Begini cara saya menyediakan borang untuk menangkap perubahan:
<form action="/SulleySells/scripts/updateitem.php?id=<?php echo $id;?>" method="post"> <script type="text/javascript"> function ShowHideDiv(listed) { var updatel = document.getElementById("updatel"); updatel.style.display = listed.checked ? "block" : "none"; } function ShowHideDiv2(sold) { var updates = document.getElementById("updates"); updates.style.display = sold.checked ? "block" : "none"; } </script> <label for="listed"> <input type="checkbox" id="listed" onclick="ShowHideDiv(this)" /> Listed? </label> <label for="sold"> <input type="checkbox" id="sold" onclick="ShowHideDiv2(this)" /> Sold? </label> <hr> <div id="updatel" style="display: none"> <h3>Update Listing Details:</h3> <label for="listdate">Listed Date:</label> <input type="date" id="updateltext" name="listdate" value=""/> <br> <label for="listprice">Listed Price:</label> <input type="text" id="updateltext" name="listprice" value=""/> <br> <button>Update</button> <hr> </div> <div id="updates" style="display: none"> <h3>Update Sale Details:</h3> <label for="solddate">Sold Date:</label> <input type="date" id="updatestext" name="solddate" value=""/> <br> <label for="soldprice">Sold Price:</label> <input type="text" id="updatestext" name="soldprice" value=""/> <br> <label for="shipdate">Ship Date:</label> <input type="date" id="updatestext" name="shipdate" value=""/> <br> <label for="shipcost">Ship Cost:</label> <input type="text" id="updatestext" name="shipcost"value=""/> <br> <button>Update Sold Info</button> <hr> </div> </form>
Pertama anda mesti berubah:
Kepada:
Padankan kandungan dalam kod php anda dan gunakannya pada input html yang lain
Kemudian tukar:
Kepada:
Pemberitahuan Jangan lupa gunakan id="" dalam input dan for="" dalam teg pemformatan untuk mengelak daripada memberikan hasil yang berbeza