0

私がやっていることは、ユーザーが作成したツールをいつでも見たり削除したりできるページを設定しようとしていることです。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 '&nbsp;&nbsp;&nbsp;&nbsp;<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);

編集:削除コードを追加

4

3 に答える 3

0

すべての行には、サーバーに送信されるいくつかの入力があります。それらは同じ名前を持っています-すべての行に対して。次のように変更できます。

echo '<input type="hidden" name="tablename'.$counter.'" value="'.$value['table'].'" />';

$_POST['tablename'.$rownr]次に、削除コードで使用できます。

于 2013-02-28T19:37:45.077 に答える
0

どこも閉じているようには見えません...

クエリから返される結果は? どのような出力を期待していますか?

于 2013-02-28T19:36:53.163 に答える
0

代わりに for ループにして、最後に変数を追加してみてください。

    $array;
    $counter = count($array);
    echo '<table>'
    for($i = 0; $i < $counter - 1; $i++) {

        echo '<tr name="item'.$i.'">';
        echo '<td>';

        echo '<input type="hidden" name="tablename" value="'.$value['table']. $i'" />';
        echo '<input type="hidden" name="tabledelete" value="'.$value['delete']. $i'" />';
        echo '<input type="hidden" name="tableidfield" value="'.$value['idfield']. $i'" />';
        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 '&nbsp;&nbsp;&nbsp;&nbsp;<input class="cssformbutton bluebutton" type="button" name="delete" id="deletebtn'.$counter.'" value="Delete" /><br /><br /><br /><br /></td>';

}
echo '</table>';
于 2013-02-28T19:43:18.520 に答える