Heim  >  Fragen und Antworten  >  Hauptteil

Möglicher Revisionstitel: „Problem mit der Aktualisierungsabfrage der PHP-SQL-Datenbank: Der Index ist nicht definiert und die Daten werden nicht aktualisiert?“

Ich habe Probleme beim Aktualisieren der Datenbank. Ich denke, der Fehler liegt in der Update-Abfrage selbst, aber ich bin neu in SQL und PHP und bin mir daher nicht 100 % sicher. Jede Hilfe wäre sehr dankbar.

Ich habe einen undefinierten Indexfehler erhalten, ich habe ihn behoben, aber das Problem besteht weiterhin:

$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'] : '';

Nachdem ich auf den obigen Code umgestiegen bin (was nicht funktioniert), habe ich immer noch Probleme beim Aktualisieren der Datenbank. Hier ist der komplette aktuelle Code:

<?

$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();

?>

Selbst wenn ich die ID manuell auf die von der Datenbank zugewiesene ändere, funktioniert das Update immer noch nicht und es ändert sich nichts in der Datenbank. Ich weiß, dass das Formular nicht schön aussieht, aber ich habe es als Test eingerichtet. So habe ich das Formular eingerichtet, um die Änderungen zu erfassen:

<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 Tage vor423

Antworte allen(1)Ich werde antworten

  • P粉415632319

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

    首先你必须改变:

    至:

    匹配您的 php 代码中的内容并将其应用到其余的 html 输入

    然后更改:

    WHERE product_id = ' .$id. '

    至:

    WHERE product_id = '$id'

    通知 不要忘记在输入中使用 id="" 格式化标签中的 for="" ,以免给出不同的结果

    Antwort
    0
  • StornierenAntwort