2017-08-29 11 views
0

以下のコードは、IDを取得してデータベースを更新していません。 IDは別のページのフォームからのページURLにあります。 画面にエラーは表示されませんが、データベースは更新されません。PHPコードでデータベースを更新するためのIDが取得されない

私に何か不足していますか?

<?php 
    if (isset($_POST['submit'])) { 

    $id = $_POST["id"]; 
    $product_name = $_POST["product_name"]; 
    $visible = $_POST["visible"]; 

    $query = "UPDATE products SET "; 
    $query .= "product_name = '{$product_name}', "; 
    $query .= "visible = {$visible} "; 
    $query .= "WHERE id = $id "; 
    $result = mysqli_query($connection, $query); 
    } 
?> 
+3

はここソリューションです。また、あなたの質問をエコーとしてエコーとして見せます。最後に、[SQLインジェクションのセキュリティリスク](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)について学んでください。 –

+0

私は既にGETを使用しようとしましたが、うまくいきませんでした。また、私はクエリをエコーするときに私には何の結果も与えません。私は注入を勉強しています、私はコードの後半でそれをやります。助けてくれてありがとう! – Willian

+0

次に、手順2を実行します。 'echo $ query;'とそれを見てください。さらに良いことに、それがどのように見えるかを教えてください。あなたの状態: 'isset($ _ POST ['submit'])'が満たされないかもしれないことにも留意してください。 –

答えて

0

ありがとうございました。私は問題を見つけた! あなたがキコに言ったように、私はループのどこにでもエコーしようとしましたが、問題は続いていました。 これでコードが変更され、問題は解決しました。あなたが代わりに `` $ _POST [ "ID"] `の` $ _GET [ "ID"]を使用する必要がある 'idは、ページのURLにある' の場合

<?php 

if($_GET['id']){ 
$id = $_GET["id"]; 
$product_name = $_POST["product_name"]; 
$visible = $_POST["visible"]; 

    $query = "UPDATE products SET "; 
    $query .= "product_name = '{$product_name}', "; 
    $query .= "visible = {$visible} "; 
    $query .= "WHERE id = $id "; 
    $result = mysqli_query($connection, $query); 
} 
?> 
関連する問題