2017-04-17 70 views
1

我想測試出一個視圖的所有數據窗體,並添加2個按鈕下面的窗體是編輯窗體並返回。以下是查看錶單。PHP - 未捕獲的錯誤:由於調用編號調用成員函數fetch_assoc()在布爾因爲

view test

我想要的編輯按鈕來獲得ID去編輯的形式,但它給了我這個錯誤。

edit error

這些代碼。

查看錶格(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)返回數據庫中的數據。

如何解決此問題?

+0

'Edit' –

+0

@AlivetoDie該行代碼仍然給出相同的錯誤。 –

+0

@AlivetoDie它返回數據並從數據庫中顯示它們,但是我點擊編輯按鈕後無法編輯數據。並且編輯表單中的id顯示了這樣的ID:「116」'而URL是'http://localhost/contractdb/viewedit.php?id =「116」'不過想知道什麼是錯誤的。它應該是'http://localhost/contractdb/viewedit.php?id = 116'所以我可以編輯。 –

回答

3

活到死幾乎放棄你的一個小錯誤寫答案,代碼應該是

<a href='viewedit.php?id=<?php echo $row["id"];?>'>Edit</a> 

,你也可以這樣寫,但要確保你的short_tag是在php.ini

<a href='viewedit.php?id=<?=$row["id"]?>'>Edit</a> 
相關問題