Maison  >  Questions et réponses  >  le corps du texte

Titre de révision possible : « Problème de requête de mise à jour de la base de données PHP SQL : l'index n'est pas défini et les données ne sont pas mises à jour ?

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>

P粉637866931P粉637866931173 Il y a quelques jours421

répondre à tous(1)je répondrai

  • P粉415632319

    P粉4156323192024-04-03 11:07:53

    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 :

    WHERE product_id = ' .$id. '

    À :

    WHERE product_id = '$id'

    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

    répondre
    0
  • Annulerrépondre