私がやっていることは、ユーザーが作成したツールをいつでも見たり削除したりできるページを設定しようとしていることです。3 つの異なるテーブルに対してクエリを実行し、結果を配列に入れています。これらの値が配列に格納されると、次のように foreach ループが実行され、テーブル内のすべての情報がテーブルに入力されます。
$counter = 1;
echo '<table>'
foreach ($recent_saved_tools as $key => $value) {
echo '<tr name="item'.$counter.'">';
echo '<td>';
echo '<input type="hidden" name="tablename" value="'.$value['table'].'" />';
echo '<input type="hidden" name="tabledelete" value="'.$value['delete'].'" />';
echo '<input type="hidden" name="tableidfield" value="'.$value['idfield'].'" />';
echo '<input type="hidden" name="tableid" value="'.$value['id'].'" />';
//code to display the tool name and link
echo '<a style="text-decoration:none;" href="'.WEBSITE.'tools/'.$value['URL'].'?saved_data_id='.$value['id'].'">'.$value['display'].'</a><br />';
echo date("m/d/Y H:i:s", $key).'<br />';
echo '</td><td>';
//code to display the delete button
echo ' <input class="cssformbutton bluebutton" type="button" name="delete" id="deletebtn'.$counter.'" value="Delete" /><br /><br /><br /><br /></td>';
$counter ++;
}
echo '</table>';
問題は、SQL クエリを実行するたびに、どのボタンをクリックしても、常に最後のテーブル行から値が取得されることです。名前の付け方に関係があることは知っていますが(複数の要素に同じ名前が付いています)、これを修正する方法がわかりません。どんな助けでも大歓迎です。
アイテムを削除するために使用しているクエリは次のとおりです。
$query = 'UPDATE '.$value['table'].' SET '.$value['delete'].' = 1 WHERE '.$value['idfield'].' = '.$value['id'];
$sql->query($query);
編集:削除コードを追加