1
我想測試出一個視圖的所有數據窗體,並添加2個按鈕下面的窗體是編輯窗體並返回。以下是查看錶單。PHP - 未捕獲的錯誤:由於調用編號調用成員函數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):
<?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();
?>
不知怎的,我要是從<a href='viewedit.php?id=".$row["id"]."'>Edit</a>
在查看錶改線(viewtest .php)到<a href='viewedit.php?id="id"'>Edit</a>
它沒有從編輯表單(viewingit.php)返回數據庫中的數據。
如何解決此問題?
'Edit' –
@AlivetoDie該行代碼仍然給出相同的錯誤。 –
@AlivetoDie它返回數據並從數據庫中顯示它們,但是我點擊編輯按鈕後無法編輯數據。並且編輯表單中的id顯示了這樣的ID:「116」'而URL是'http://localhost/contractdb/viewedit.php?id =「116」'不過想知道什麼是錯誤的。它應該是'http://localhost/contractdb/viewedit.php?id = 116'所以我可以編輯。 –