обновление базы данных mysqli с помощью php - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь получить пользовательский ввод из HTML-формы, а затем использовать эти данные, чтобы изменить строку в базе данных MySQL. Также предполагается загрузить список текущей таблицы, чтобы пользователь мог выбрать, какую строку изменить. Вот мой код пока

<?php
    require('conn.php');
    error_reporting( E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED & ~E_WARNING);
    ini_set("display_errors", 1);
    if( isset($_POST['send'])){
    $Change=htmlspecialchars($_POST["change"]);
    $Product_Name = htmlspecialchars($_POST["product_name"]);
    $Stock= htmlspecialchars($_POST["stock"]);
    $Price=htmlspecialchars($_POST["price"]);
    $update="UPDATE product SET Product_Name='$Product_Name', Stock='$Stock', Price='$Price' WHERE $Product_Name='$Change'";
            if (mysqli_query($conn,$update)){
                    echo "Record updated";
    } else{
    echo "Error updating record: " . mysqli_error($conn);
    }
    }
    $sql = "SELECT * FROM product";
    $result = mysqli_query($conn,$sql);
    if(!$result){
            echo 'Could not run query: ' . mysqli_error($conn);
            exit;
    }

    print   "<table border='1'>\n";
    print " <tr><th>Product Name</th><th>Total Stock</th><th>Price</th>  </tr>\n";

    while($row = mysqli_fetch_row($result)){
    print " <tr>\n";
    print "<td>".$row['0']."</td>";
    print "<td>".$row['1']."</td>";
    print "<td>".$row['2']."</td>";
    print " </tr>\n";
}
print "</table>\n";

mysqli_close($conn);
?>

<html>
<body>
<form action="update.php" method="post">

<table border="1">

<tr>
    <td>Row to Change</td>
    <td align="center"><input type="text" name="change" size="30" /></td>
</tr>

<tr>
    <td>Product Name</td>
    <td align="center"><input type="text" name="product_name" size="30" /></td>
</tr>

<tr>
    <td>In Stock</td>
    <td align="center"><input type="text" name="stock" size="30" /></td>
</tr>

<tr>
    <td>Price</td>
    <td align="center"><input type="text" name="price" size"30" /></td>
</tr>

<tr>
    <td>Submit</td>
    <td align="center"><input type="submit" name="send" value="send"></td>
</tr>

Однако на данный момент страница пуста, когда я ее загружаю. Html часть отлично работает как часть этой части php кода

$sql = "SELECT * FROM product";
$result = mysqli_query($conn,$sql);
if(!$result){
        echo 'Could not run query: ' . mysqli_error($conn);
        exit;
}

print   "<table border='1'>\n";
print " <tr><th>Product Name</th><th>Total Stock</th><th>Price</th>  </tr>\n";

while($row = mysqli_fetch_row($result)){
print " <tr>\n";
print "<td>".$row['0']."</td>";
print "<td>".$row['1']."</td>";
print "<td>".$row['2']."</td>";
print " </tr>\n";
}
print "</table>\n";

mysqli_close($conn);
?>

Когда я добавил остальное, он показывал только пустую страницу. Что я могу сделать, чтобы изменить это и получить данные формы для обновления и изменения соответствующей строки в моей базе данных?

1 Ответ

0 голосов
/ 04 мая 2018

Где этот браслет закрывается?

if( isset($_POST['send'])){

правильно закройте скобки после операторов обновления / вставки, угадайте до

$sql = "SELECT * FROM product";

заявление.

(PS Попробуйте использовать программный редактор (например, блокнот ++). Он показывает правильные теги открытия / закрытия. Действительно полезен.

Также

error_reporting( E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED & ~E_WARNING);
ini_set("display_errors", 1);

в первой строке тоже поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...