すべてのデータフォームを表示し、フォームの下に2つのボタンを追加して元に戻すためにテストしようとしています。以下はビューフォームです。PHP - Uncaught Error:呼び出すIDのためbooleanのメンバー関数fetch_assoc()を呼び出す
私はフォームを編集するために行くためのIDを取得するために、編集ボタンを望んでいたが、それは私にこのエラーが発生します。
これらは、コードです。
ビューフォーム(viewtest.php):
<?php
require("config.php");
$id = filter_input(INPUT_GET, 'id');
$sql = "SELECT * FROM contracts WHERE `id` = $id";
$result = $con->query($sql);
$row = $result->fetch_assoc();
?>
<!DOCTYPE html>
<html>
<head>
<title> View a Contract </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<h2>Viewing a Contract Form</h2>
<form action="" method="POST">
<table>
<tr>
<th colspan='2'>Contract Details</th>
</tr>
<tr>
<th>ID</th>
<td><?php echo $row['id']; ?></td>
</tr>
<tr>
<th>Contract Title</th>
<td><?php echo $row['contract_title']; ?></td>
</tr>
</table>
</form>
<a href='viewedit.php?id=".$row["id"]."'>Edit</a>
<a href="view.php" class="btn btn-default" role="button"> Go Back</a>
</body>
</html>
ビューの編集(viewedit.php):私は、ビューのフォームで<a href='viewedit.php?id=".$row["id"]."'>Edit</a>
から行を変更した場合にどういうわけか
<?php
require("config.php");
$id = filter_input(INPUT_GET, 'id');
error_reporting(~E_NOTICE);
if(isset($_POST['edit'])){
$contract_title = $_POST['contract_title'];
$upd= "UPDATE `contracts` SET `contract_title` = ? WHERE `id` = ?";
$stmt = $con->prepare($upd);
$null = NULL;
$stmt->bind_param("si",$contract_title,$id);
$stmt->execute();
if ($stmt->errno){
echo "FAILURE!!! " . $stmt->error;
} else {
$successMsg = "Contract Successfully Updated!";
}
$stmt->close();
}
?>
<html>
<head><title>Edit a Contract</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<h1>Edit Contract Form</h1>
<form role="form" action="" method="POST" enctype="multipart/form-data">
<h3>Contract Details</h3><hr>
<label>ID: </label> <?php echo $id; ?> <br>
<input type="hidden" name="id" value="<?php echo $id; ?>" /><br>
<?php
$sql = "SELECT * FROM contracts WHERE `id` = $id";
$result = $con->query($sql);
$row = $result->fetch_assoc();
?>
<label>Contract Title</label>
<input class="form-control" type="text" name="contract_title" size="45" value="<?php echo htmlspecialchars($row['contract_title']); ?>" />
<br>
<button type="submit" class="btn btn-success btn-md" name="edit">
<span class="glyphicon glyphicon-pencil"></span> Update Contract
</button>
<a href="view.php" class="btn btn-default" role="button">Cancel</a>
</form>
</body>
</html>
<?php
$con->close();
?>
(viewtest .php)を<a href='viewedit.php?id="id"'>Edit</a>
に変更しました。編集フォーム(viewedit.php)でデータベースからデータを返しませんでした。
この問題を解決するにはどうすればよいですか?
Edit –
@AlivetoDieのコード行でも同じエラーが発生します。 –
@AlivetoDieデータを返してデータベースから表示しますが、編集ボタンをクリックしてもデータを編集できません。編集フォームのidはこの 'ID:" 116 "'のようなものを表示し、URLは 'http://localhost/contractdb/viewedit.php?id =" 116 "'何が間違っているのだろうか。 'http://localhost/contractdb/viewedit.php?id = 116'となっていたので、編集することができました。 –