0

複数の入力をフォームで送信しています。実際の入力の ID を取得して、mysql コンテンツを更新するにはどうすればよいですか?

私のコード:

if (isset($_POST['save']))
    {
    foreach ($_POST as $key => $value)
        {
        ${$key} = $value;
        mysql_query("UPDATE table SET img='$image_[id]', title='$title_[id]' where id='$id'");
        }
    }

while ($row = mysql_fetch_array($result))
    {
    echo "<b>Title: </b><input type='text' name='title_" . $row['id'] . "' value='" . $row['title'] . "'><br />";
    echo "<b>Image: </b><input type='text' name='image_" . $row['id'] . "' value='";
    }
echo '<input type="submit" name="save" value="save"><br /><hr>';
echo '</form>';
4

1 に答える 1

0

あなたのネーミングは間違っています。このように使用します。

echo "...    name='title[" . $row['id'] . "]'...";

その後$_POST['title']、タイトルの配列が含まれます。

マニュアルを読んで、 HTML で配列を作成するにはどうすればよいですか?


しかし、あなたがまだその道を行くものなら。このようなものを使用できます。

foreach ($_POST as $key => $value)
    {
    if (preg_match('^image_(\d*)$', $key, $matches))
        {
        $id = $matches[1];
        if (isset($_POST['title_' . $id]))
            {
            mysql_query("UPDATE table SET title='" . $_POST['title_' . $id] . "' where id='$id'");
            }
        }
    }

ただし、このコードのすべての脆弱性を理解していることをここに署名してください。

于 2013-04-04T00:22:41.937 に答える