2017-04-17 4 views
1

すべてのデータフォームを表示し、フォームの下に2つのボタンを追加して元に戻すためにテストしようとしています。以下はビューフォームです。PHP - Uncaught Error:呼び出すIDのためbooleanのメンバー関数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):私は、ビューのフォームで<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)でデータベースからデータを返しませんでした。

この問題を解決するにはどうすればよいですか?

+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> 
関連する問題