2016-03-23 9 views
-1

私の管理者PHP(admin.php)のトップに、 "DogSport" MySQLデータベースの "Sport"テーブルからデータを読み込んでいます。特定のレコードの「編集」リンクをクリックした後、私は を編集し、そのレコードを「editform2.php」で削除することができます。そのページでも、新しいレコードを挿入することができます。PHPの削除機能おそらく論理エラー

enter image description here

問題:第一及び第二のレコードを削除すると動作しません!すべての次のレコードを削除すると正常に動作します。この問題は、機能を削除する場合にのみ発生します。

コードセグメント - admin.php

<?php 
         include("dbconnect.inc.php"); 
         //Retrieving Data 
         $query1="SELECT * FROM Sport ORDER BY SportId ASC"; 
         $result2=mysqli_query($con, $query1); 
         $rows=mysqli_num_rows($result2); 
         $i=0;   
         if($rows==0) 
          echo "<br/>There are no records"; 
         else{ 
          echo "<table id='sport'>"; 
          echo "<tr><th>Sport Id</th><th>Sport Name</th><th>Description</th></tr>"; 

          while ($row = mysqli_fetch_array($result2)) 
          { 
           echo "<tr><td>" . $row["SportId"] . "</td><td>" . $row["SportName"] . "</td><td>" . $row["Description"] . 
           "</td><td> <a href='editform2.php?id=" . $row["SportId"] . "' target='_blank'>Edit</a></td></tr>"; 

           $i++; 
          } 
          echo "</table>"; 
         } 
        ?> 

コードセグメント - editform2.php

if(isset($_POST["delete"])){ 
include("dbconnect.inc.php"); 
$query3="DELETE FROM Sport WHERE SportId=$id"; 
mysqli_query($con, $query3); 
echo "<h1>Deleted Successfully</h1>"; 
mysqli_close($con); 

}

私は必要なファイルをアップロードしたが、あなたはまた、データベースを含む、それをチェックするために使用することができます.sqlスクリプト。あなたの助けに感謝します。あなたは$ IDの値を設定しなかった

https://www.dropbox.com/s/wn40u93oa1sxcph/SO.rar?dl=0

+0

ない$詐欺が唯一のデータベース・サーバを選択し、100%の場合は、あなたがmysqli_query($詐欺、$のquery3)を使用し、あなたのDropboxのファイルに基づいていることを確認、データベース自体ではありませんか? mysqli_query($ db_selected、$ query3)するか、dbconnect.inc.phpファイルの$ conをmysqli_connect($ servername、$ username、$ password、$ dbname)に変更し、別途データベースに接続するステップを省く – Matt

+0

あなたの提案は正しいようです!私はすぐにそれを試してみます。しかし、不思議なことは、削除は最初の2つのレコードだけでは機能しないということです。以下のレコードは問題なく削除されます。データベースの選択に問題がある場合は、レコードが削除されません。 : – Praba

+0

私はこれを私のサーバーにアップロードしていて、すべての行を削除することができますか?問題が何であるか確認できますか? – Matt

答えて

0
$query3="DELETE FROM Sport WHERE SportId=$id"; 

$_POST["id"]が正しいはずですか?サイドノートとして

- SQLインジェクションのリスク...

+0

特定のレコードの「編集」リンクをクリックすると、admin.phpからURLを介してeditform2.phpに$ idが送信されます。 editform2.phpにはそのレコードを削除するボタンがあります。 isset($ _ POST ["delete"])は、ユーザがそのボタンをクリックしたかどうかをチェックします。 – Praba

関連する問題