0

私はこのチュートリアルに従っています htmlページからmysql行を削除する最良の方法-リンクとphpを削除します

しかし、行き詰まってしまい、行が削除されませんでした。助けてください

// My Viewing dish Page
<?php
$result = mysql_query("SELECT * FROM dish");

echo "<table border='1'>
<tr>
<th>DishID</th>
<th>DishName</th>
<th>DishPrice</th>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['DishID'] . "</td>";
  echo "<td>" . $row['DishName'] . "</td>";
  echo "<td>" . $row['DishPrice'] . "</td>";
  echo '<td><a href="delete.php?id=' . $row['DishID'] . '">Delete</a></td>';
  echo "</tr>";
  }
echo "</table>";

?>


//Delete Page

<?php

require_once("database.php");


/* 
 DELETE.PHP
 Deletes a specific entry from the 'players' table
*/


 // check if the 'id' variable is set in URL, and check that it is valid
 if (isset($_GET['DishID']) && is_numeric($_GET['DishID']))
 {
 // get id value
 $DishID = $_GET['DishID'];

 // delete the entry
$result = mysql_query("DELETE FROM dish WHERE DishID =$DishID} ")
 or die(mysql_error());


 // redirect back to the view page
 header("Location: admin_modifydishes.php");
 }
 else
 // if id isn't set, or isn't valid, redirect back to view page
 {
echo "doesn'twork";
 }

?>

$DishID = $_GET['DishID']; と関係があると思います。しかし、私はそれを回避することはできません、助けてください。

4

3 に答える 3

4

それは簡単です

削除する URL は次のとおりです。delete.php?id=your-id

パラメータを取得するには、 ではなくidを使用する必要があります。$_GET['id'] $_GET['DishID']

また、削除クエリは少し間違っています。それを次のように置き換えてみてください:

$result = mysql_query("DELETE FROM `dish` WHERE `DishID`={$DishID}");
于 2013-01-22T11:58:20.413 に答える
0

どこかで入力をサニタイズしていない限り、ここで自分自身のために痛みの世界を作成していることに注意してください。

このように SQL を使用すると、SQL インジェクション攻撃に対して無防備になります。可能であれば、サニタイズと同様に、PDO モジュールを確認する必要があります。

http://www.phptherightway.com/#databasesもご覧ください。

于 2013-01-22T12:01:35.903 に答える
0
$result = mysql_query("DELETE FROM dish WHERE DishID =$DishID} ")
 or die(mysql_error());

する必要があります

$result = mysql_query("DELETE FROM dish WHERE DishID =$DishID")

$_GET['DishID']

する必要があります

$_GET['id']
于 2013-01-22T12:00:51.813 に答える