2017-01-06 4 views
0

私はcan notが私のamend.phpとupdate.phpページを作成し、私の作成した表示ページで更新するように見える現在、PHPでウェブサイトをコーディングしています。コード。ちょうど助けを必要とするいくつかのPHPのCRUD機能

表示ページには、「amend」というハイパーリンクが選択されているときに説明的な列を含む表が表示され、amend.phpが実行されます。

それが選択されたIDを使用してphpmyadminのからすべてのデータを表示するように、このPHPページの作品

<?php 
include 'connection.php'; 



$id = $_GET ['theid']; 

$query = "SELECT * FROM place WHERE placeid = '$id'"; 

$results = mysqli_query($connection,$query); 

$row = mysqli_fetch_assoc($results); 
?> 
<?php include 'header.php'; ?> 

    <body> 
     <h2>Amend</h2> 

      <form method="post" action="updateplace.php"> 

       <fieldset class="fieldset-width1"> 

        <input type="hidden" name="hiddenID" value= "<?php echo $row['placeid']; ?>" /> 
        <br /> 
        <br /> 
        <label class="align" for="txtplacename">Place Name: </label> 
        <input type="text" name="txtplacename" value = "<?php echo $row['placename']; ?>" /> 
        <br /> 
        <br /> 
        <label class="align"for="txtplacedesc">Place description: </label> 
        <input type="text" name="txtplacedesc" value = "<?php echo $row['placedesc']; ?>" /> 
        <br /> 
        <br /> 
        <label class="align"for="txtplacecat">Place category: </label> 
        <input type="text" name="txtplacecat" value = "<?php echo $row['placecat']; ?>" /> 
        <br /> 
        <br /> 
        <label class="align" for="txtplaceimg">Place image: </label> 
        <input type="text" name="txtplaceimg" value = "<?php echo $row['placeimg']; ?>" /> 
        <br /> 
        <br /> 
        <input type="submit" value="Submit" name='submit' /> 
        </fieldset> 
      </form> 
     </p> 
<?php include 'footer.php'; ?> 
    </body> 

</html> 

を改正。

更新

<?php 
include 'connection.php'; 

if(isset($_POST['submit'])){ 

$placeid = $_POST['hiddenID']; 
$placename = $_POST['txtplacename']; 
$placedesc = $_POST['txtplacedesc']; 
$placecat = $_POST['txtplacecat']; 
$placeimg = $_POST['txtplaceimg']; 
} 

$query = "UPDATE place 
SET placename = '$placename'; 
SET placedesc = '$placedesc'; 
SET placecat = '$placecat'; 
SET placeimg = '$placeimg'; 
WHERE 
placeid = '$placeid'"; 

mysqli_query($connection,$query); 

header("location:admin.php"); 

私は送信ボタンを選択すると、ヘッダーは、私が変更列のどれも更新されていないでしょうが、私をリダイレクトします。助けていただければ幸いです。

答えて

0

見て、

$query = "UPDATE place 
SET placename = '$placename'; <== 
SET placedesc = '$placedesc'; <== 
... 

あなたのクエリを破っている;を使用してすべての行にあなたのUPDATE動作を終了しています。さらに、あなたのUPDATEクエリ自体が間違っている、それは次のようにする必要があります:

$query = "UPDATE place SET placename = '$placename', placedesc = '$placedesc', placecat = '$placecat', placeimg = '$placeimg' WHERE placeid = '$placeid'"; 

追記:学習についてprepared statement今すぐあなたのクエリがSQLインジェクション攻撃を受けやすいので。また、ここにはhow you can prevent SQL injection in PHPの良い読書があります。

+0

投稿する前に私はあなたがそれを書いたので、各列名の後にカンマが足りなくなる前に質問をしました。私は不満を持ち、すべての列にセットを追加して自分のコードを修正しようとしました。素晴らしい日を過ごしてくれてありがとう! –

+0

@ K-dawgggggよろしくお願いします!もう1つのことを指すようにするには、*回答を受け入れる習慣に入るべきです。そうしないと、質問は開かれた*質問として浮かびます。さらに、他の開発者がさらにあなたを助けるよう促します。 [スタックオーバーフローに関する回答を受け取る方法](http://meta.stackexchange.com/a/5235) –

0

あなたは単にクエリが成功したと考えるべきではありません。何が起こっているかを把握するためにこれであなたのmysqli_query行を置き換えます

if (!mysqli_query($connection, $query)) { 
    echo("Error description: " . mysqli_error($connection)); 
    die(); 
} 

エラーのいくつかの並べ替えを持っていると仮定すると、それはリダイレクトして表示を防ぐことができます。依然としてリダイレクトが発生した場合、クエリ自体に問題はなく、$placeidという値はデータベースに存在しません。あなたのUPDATEクエリで

+0

ありがとう、私はあなたがエラーの説明をエコーすることができたことを知らなかった、私は今も動作しているコードを持っています。すてきな一日を! –

関連する問題