0

MySQL データベースからデータ行を削除しようとしています。

以下は、キーワードを含むテーブルの結果を出力するクエリです。私の結果がどのように表示されるかを確認するには、この写真を参照してください。ここに画像の説明を入力

addKeywordTable からデータを正常に取得できましたが、削除を実行できません。これは、削除を有効にするためにクリックされる入力ボタンを示す私の index.php ページです。

 <?php
 include 'db.php'; 

 $sql = mysqli_query($con,"SELECT * FROM addKeywordTable ORDER BY 
 Keyword_Name ASC");

 print <<<HERE
 <table id="home">
 HERE;

 while ($row = mysqli_fetch_array($sql))
 {
 $key = $row['Keyword_Name'];

 print <<<HERE
 <tr><td>
 <form method="post" formenctype="multipart/form-data" formmethod="POST" 
      value="Delete"      action="deleteKey.php">
 <tr>
 <input type="hidden" name="sel_key" value="$id">
 <input type="submit" name="delete" value=" Delete " id="deleteKey" > $key
 <hr/></tr>
 </form></td></tr>
     HERE;
 }
     print "</tr></table></body></html>";
  ?>

「削除」ボタンをクリックすると、次のような確認ページ deleteKey.php が表示されます。

        <?php

    require 'db.php';
    $sel_key = $_POST[sel_key];

    //SQL statement to select information
    $sql = "SELECT * FROM addKeywordTable WHERE keyID = $sel_key";

    //loop through record and get values
    while ($key = mysqli_fetch_array($result)) {
    $id = $key['Keyword_Name'];
    } // end while loop

    $pageTitle = "Delete a Keyword";

    print <<<HERE
    <div id="form1profile">
    <h2>Are you sure you want to delete this record?<br/>
    It will be permanently removed:</h2>

    <ul>
    <li>Keyword Category:<br/></li>
    $key;
    </ul>
    <p><br />
    <form method="post" action="reallyDelete.php">
    <input type="hidden" name="id" value="$id">
    <input type="submit" name="reallydelete" value="Confirm Delete" />
    <input type="button" name="cancel" value="cancel"
    onClick="location.href='addProfile.php'" /></a>
    </p></form></div>
    HERE;
    // close else

    ?>

削除を確認すると、確認ページ「reallyDelete.php」に移動します。悩んでいるページです。何らかの理由で、変数に行/キーワード名の内容が表示されません。

私のDBには、KeyIDとKeyword_Nameの2つの列しかありません

こちらが削除確認ページです。$id をデータベースに渡してキーワード/レコードを削除するにはどうすればよいですか。

  <?php
      include 'db.php';

  $id = $_POST[id];
  $sql = "SELECT * FROM addKeywordTable WHERE Keyword_Name = '$id'";

  while ($row = mysqli_fetch_array($result)) {
  $id = $row['Keyword_Name'];
       } // end while loop

  print "<p> $row has been permanently deleted.</p>";


  $sql="DELETE FROM addKeywordTable WHERE Keyword_Name = '$id'";
  echo "<meta http-equiv='Refresh' content='2; URL=addKeyword.php'>";
  ?>

これに関するヘルプは素晴らしいでしょう。以下は、addKeywordTableのSQLテーブルのスクリーンショットです

SQL データベース

4

2 に答える 2

0

私が見たのは、ファイルdeleteKey.phpreallyDelete.phpでクエリを実行しないことです (おそらく、完全なコードを入れたくないでしょう)。

よろしく!

于 2013-08-07T21:50:04.453 に答える
0

あなたdeleteKey.phpにはエラーがあるかもしれません:

require 'db.php';
$sel_key = $_POST[sel_key];

//SQL statement to select information
$sql = "SELECT * FROM addKeywordTable WHERE keyID = $sel_key";

代わりにその 2 行目を読む必要があり$sel_key = $_POST['sel_key'];ますか?

これにより、後続のクエリでレコードが選択されなくなります。

于 2013-08-07T20:22:08.173 に答える