J'ai du mal à mettre à jour la base de données. Je pense que l'erreur vient de la requête de mise à jour elle-même, mais je suis nouveau sur SQL et PHP, donc je ne suis pas sûr à 100 %. Toute aide serait grandement appréciée.
J'ai eu une erreur d'index non définie, je l'ai corrigée mais le problème existe toujours :
$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'] : '';
Après avoir modifié le code ci-dessus (qui ne fonctionne pas), j'ai toujours des problèmes pour mettre à jour la base de données. Voici le code complet actuel :
<? $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(); ?>
Même si je change manuellement l'ID par celui attribué par la base de données, la mise à jour ne fonctionne toujours pas et rien ne change dans la base de données. Je sais que le formulaire n'a pas l'air joli, mais je l'ai configuré comme test. Voici comment j'ai configuré le formulaire pour capturer les modifications :
<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>
Vous devez d'abord changer :
À :
Faites correspondre le contenu de votre code php et appliquez-le au reste de l'entrée HTML
Puis changez :
À :
Notification N'oubliez pas d'utiliser id="" dans la saisie et for="" dans la balise de formatage pour éviter de donner des résultats différents