テーブルからMySQLデータを使用してhtmlフォームを作成しました。MySQLのDELETEクエリの異常な動作
私はこのテーブルにフォームを含めました。フォームを送信すると、MySQLテーブルからその行が削除されます。
これは、テーブルからMySQLデータを使用してテーブルを作成するコードです(db接続コードと他のコードとは無関係です)。
while($row_data=mysql_fetch_array($table_data)){
echo "<tr>";
echo "<td>" . $row_data['ID'] . "</td>";
echo "<td>" . $row_data['Site'] . "</td>";
echo "<td>" . $row_data['Date'] . "</td>";
echo "<td>" . $row_data['Target_Site'] . "</td>";
echo "<td>" . $row_data['Target_Contact_Email'] . "</td>";
echo "<td>" . $row_data['Target_Contact_Name'] . "</td>";
echo "<td>" . $row_data['Link_Type'] . "</td>";
echo "<td>" . $row_data['Link_Acquired'] . "</td>";
echo "<td>" . $row_data['Notes'] . "</td>";
echo "<td>" . $row_data['Link_URL'] . "</td>";
echo "<td></td>";
echo "<td><form action='delete.php' method='post'><input type='hidden' name='delete_id' value=" . $row_data['ID'] . "><input type='submit' value='✓' name='delete' style='background:none;' /></form></td>";
echo "</tr>";
}
あなたがそのコードに見ることができるように
は、フォームで終わり、上の表のデータがあり、クリックされた場合には、その特定の行を削除するためのものです。フォームからわかるように、アクションはdelete.phpです。この
は$ID = $_POST['delete_id'];
$Delete = $_POST['delete'];
if(isset($Delete)){
mysql_query("DELETE FROM link_building WHERE 'ID'=" . $ID);
header("location:link_building.php?success2=1");
}else{
header("location:link_building.php?fail2=1");
}
今(DB接続コードを逃した)、それは一種の動作しますが、唯一私がしようとするたびに、0のIDを持っているデータの行を削除delete.phpためのコードですたとえばIDが2のデータ行を削除すると、データが正常に削除されたと表示されますが、実際には削除されません。しかし、idが0の行でdeleteをクリックすると、その行だけでなくすべてのデータが削除されます。
変数(文字列)でクエリをビルドして出力し、mysql_query&redirectをコメントアウトしてみてください。そして、この出力されたクエリを手動で実行してみてください(phpmyadmin)。これはおそらく何が間違っているのかを教えてくれるでしょう。 –
@Ryan - あなたはどこで列名を引用しなければならないのですか?人々にそれを教えるチュートリアルや何かがあるなら、私は本当に興味があります。 –
私は本当に正直であることを覚えていません。そのような小さなものがどのように大きな違いを生み出すことができるかという素晴らしいことです。 – RSM