0
特定のアパートメントの可用性を変更するPHPコードを作成しようとしています。ここに私のコードは次のとおりです。Mysqlテーブルセルがクリック時に値を変更しない
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<?php
$servername = "localhost";
$username = "bla";
$password = "blabla";
$dbname = "testDB";
// Create connection
$connect = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if ($connect->connect_error) {
die("Connection failed: " . $connect->connect_error);
}else{
echo "Connected successfully to the database: " . $dbname . "<br><br>";
}
$query = "SELECT * FROM test";
$result = mysqli_query($connect, $query);
$row = mysqli_fetch_array($result);
echo "id: " . $row["id"] . " // Address: " . $row["address"] . " // Rooms: " . $row["rooms"] . " // Availability: " . $row["availability"] . ".<br>";
?>
<form method ="post" action ="<?php $_PHP_SELF ?>">
<input name="update" type="submit" value="Change Availability">
</form>
<?php
if(isset($_POST["update"])) {
$avail = mysqli_query($connect,"SELECT availability FROM test WHERE id='1'");
$availCheck = mysqli_fetch_array($avail);
settype($availCheck, "int");
if($availCheck == 1){
$upAvail = mysqli_query($connect,"UPDATE test SET availability='0' WHERE id='1'");
}else{
$upAvail = mysqli_query($connect,"UPDATE test SET availability='1' WHERE id='1'");
}
}
?>
</body>
</html>
そして、これは私が手に出力されます:データベースへの接続に成功しました
:TESTDB
ID:1 //住所:3787コートデネージュ//部屋: 2 //在庫状況:1. 在庫状況の変更
ここに私の問題があります。可用性が1でボタンを押すと0に変わります。その後、ボタンをもう一度押すと、1に戻りません。
なぜですか?
ありがとうございました。
はあなたにそれを解決したので、多くの@noahnuをありがとうございました!しかし、私に聞かせてください。私のロジックを使って同じことをする方法はありますか?クリックごとに利用可能な値を取得し、変数に保存してからifステートメントを使用して値を変更しますか?ちょうど教育的理由から。 – Rorrim
はい。私は私の答えを編集しました。最後のコードスニペットを参照してください。 mysqli_fetch_arrayがNULL/falseでないかどうかをチェックしてから、連想インデックスにアクセスしようとすることをお勧めします。 – noahnu
はい、私はあなたに尋ねた直後に私自身の質問に答えました!もう一度、ありがとう! @noahnu – Rorrim