2

SQLから削除ボタンを作成しようとしています。$del という関数を開始しましたが、現在のエコー ステートメントの横にエコーされた削除ボタンの形で、それを完了する方法がわかりません。

$con = mysql_connect("localhost", "user", "pass");
if (!$con) {
    die('Could not connect: ' . mysql_error());
}

mysql_select_db("database", $con);
$sql = "INSERT INTO camps (city, map, park, day, details) 
    VALUES ('$_POST[city]','$_POST[map]','$_POST[park]','$_POST[day]','$_POST[details]')";

if (!mysql_query($sql, $con)) {
    die('Error: ' . mysql_error());
}

$number = 0;
$del = mysql_query("DELETE FROM camps WHERE user_id= '$number'");

$result = mysql_query("SELECT * FROM camps");

while ($row = mysql_fetch_array($result)) {
    echo "<a href=\"'" . $row['map'] . "\">" . $row['city'] . "</a>";
    echo "<br />";
}
4

1 に答える 1

2

リンクがそのレコードを削除するスクリプトにパラメーターを渡すようにする必要があります。リンクは次のようになります

 echo "<a href=\"'delete.php?id=" . $user_id"\">" . $row['city'] . "</a>";

次に、削除で $_GET グローバルからパラメーターを取得し、SQL に渡すことができます。

  $del = mysql_query("DELETE FROM camps WHERE user_id=" . $_GET['user_id']);

この現在のクエリは、そのユーザーのすべてのキャンプを削除します (必要に応じて params / sql を調整します)。

ただし、SQL 文字列にユーザー変数を渡すことは絶対にしないでください。SQL インジェクション攻撃にさらされることになります。PDOを使用して SQL をエスケープすることをお勧めします。また、誤って何かを変更しないように、破壊的なデータベース操作には post メソッドを使用することをお勧めします。

于 2012-12-21T21:37:24.670 に答える