PHP MYSQLi База данных не обновляется - PullRequest
0 голосов
/ 08 ноября 2018

Я пытался найти проблему в течение 3 ночей. Это дало мне кошмары. Пожалуйста помоги. Я думаю, что мой код уже совершенен. Может кто-нибудь исправить мой код и сказать, что не так?

$sql = "SELECT py.idPembayaran, p.idPelajar, p.nama, b.namaBarangan, 
pb.kuantiti, b.harga, py.jumlahBayaran, py.statusPembayaran, 
py.statusPenghantaran, pb.tarikhPembelian FROM barangan b
INNER JOIN pembelian pb on pb.idBarangan = b.idBarangan
INNER JOIN pembayaran py on py.idPembelian = pb.idPembelian
INNER JOIN pelajar p on p.idPelajar = pb.idPelajar";

$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
// output data of each row

while($row = mysqli_fetch_assoc($result)) {

    echo '
    <form method="POST" action="purchaselist.php">

        <tr>
        <input type="hidden" name="idPembayaran" value="<?php echo $idPembayaran ?>">
            <td>'.$row["idPembayaran"].'</td>
            <td>'.$row["idPelajar"].'</td>
            <td>'.$row["nama"].'</td>
            <td>'.$row["namaBarangan"].'</td>
            <td>'.$row["kuantiti"].'</td>
            <td>'.$row["harga"].'</td>
            <td>'.$row["jumlahBayaran"].'</td>


            <td>
                <select name="statusPembayaran">
                    <option value="In process">In process</option>
                    <option value="Successful">Successful</option>
                </select>
            </td>

            <td>
                <select name="statusPenghantaran">
                    <option value="In process">In process</option>
                    <option value="Arrived">Arrived</option>
                </select>
            </td>

            <td>'.$row["tarikhPembelian"].'</td>
            <td><input type="submit" name="submit" value="Update"></td>
        </tr>
    </form>
    ';
}
}

if (!empty($_POST["submit"])) {

$idPembayaran = $_POST["idPembayaran"];
$statusPembayaran = $_POST["statusPembayaran"];
$statusPenghantaran = $_POST["statusPenghantaran"];

$sql = "UPDATE pembayaran SET statusPembayaran ='".$statusPembayaran."', statusPenghantaran ='".$statusPenghantaran."' WHERE idPembayaran = '".$idPembayaran."'";

if(mysqli_query($conn, $sql)) {

    echo "
        <script>
        alert('test');
        window.location.href = 'purchaselist.php';
        </script>
    ";
}
else {
    echo "Update error.";
}
}

Я пытаюсь обновить таблицу "pembayaran", но она не обновляется. Есть только два столбца, которые я хочу обновить, это «statusPembayaran» и «statusPenghantaran» в этой таблице. Значение из опции выбора.

1 Ответ

0 голосов
/ 08 ноября 2018

Когда вы устанавливаете значение для поля idPembayaran в первую очередь, вы получаете ...

<input type="hidden" name="idPembayaran" value="<?php echo $idPembayaran ?>">

на данный момент $idPembayaran не установлено, это должно быть $row["idPembayaran"], что является значением из SELECT ...

<input type="hidden" name="idPembayaran" value="<?php echo $row["idPembayaran"]; ?>">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...