1

ページに表示されるレコードのすべての行に削除リンクを追加しようとしています。私はこれまでのところそれを管理してきましたが、削除リンクをクリックすると、そのデータ行のみがデータベースから削除されるようにリンクを機能させる方法がわかりません。私は php/mysql にまったく慣れていないので、質問を許してください。これまでのところ、次のコードがあります..

<?php
require("common.php");

if(empty($_SESSION['user'])) 
{ 
header("Location: index.php"); 

die("Redirecting to index.php");
}

$result = $db->prepare("SELECT * FROM compliance_requirement");
$result->execute();

?>


<div class="compTable">
<table >
<tr>
<th>Compliance Name</th><th>Compliance Goal</th><th>Compliance Description</th>  <th>Options</th>
</tr>

<?php while($row = $result->fetch(PDO::FETCH_ASSOC)){ ?>
<tr>

<td style='width: 200px;'><?php echo $row['ComplianceName']; ?></td>
<td style='width: 150px;'><?php echo $row['ComplianceGoal']; ?></td>
<td style='width: 400px;'><?php echo $row['ComplianceDescription']; ?></td>

<td style ='width: 250px;' ><?php echo '<a href="delete.php?action=delete&id=delete'.$row['ComplianceName'].'">Delete</a>';?>   

</td>
</tr>
<?php } 
?> 
</table>
</div>

..そして、私のdelete.phpファイルには、次のコードがあります:

<?php
require ('common.php');

if( isset($_GET['delete']) )
{
$id = $_GET['delete'];
$sql= $db->prepare("DELETE FROM compliance_requirement WHERE ComplianceName='$id'");
$sql->execute();
echo "<meta http-equiv='refresh' content='0;url=compliance.php'>";
}
?>

削除リンクをクリックすると、空白の画面が表示されます。どんな助けでも大歓迎です!ありがとう

4

2 に答える 2

1

動的リンクを作成するときは、最初に URL を作成するのが最善であることがわかりました (テスト中にエコーできます)。これにより、引用符の混乱が回避されます。URLはリンクで簡単に使用できます。

<?php 
   while($row = $result->fetch(PDO::FETCH_ASSOC)){ 
     $url = "delete.php?action=delete&id=".$row['ComplianceName'];
     //echo $url;
?>
<tr>
  <td style='width: 200px;'><?php echo $row['ComplianceName']; ?></td>
  <td style='width: 150px;'><?php echo $row['ComplianceGoal']; ?></td>
  <td style='width: 400px;'><?php echo $row['ComplianceDescription']; ?></td>
  <td style ='width: 250px;' ><?php echo '<a href ='.$url.'>' ?> Delete </a>

リンク例

<td style ='width: 250px;' ><a href =delete.php?action=delete&id=name1> Delete </a>
于 2013-11-01T22:21:11.060 に答える