0

データベース テーブルの行を編集するフォームを作成しようとしています。(StackOverflow ページから取得したコードに基づいています。)

フォームに関連データを入力することはできますが、フォームを送信しても行が更新されません。実際、私の列のいくつかは削除されています。

私は何を間違えましたか?

edit.php

<?php

$UID = (int)$_GET['f'];
$query = mysql_query("SELECT * FROM user_feeds WHERE feed_id = '$UID'") or die(mysql_error());

if(mysql_num_rows($query)>=1){
    while($row = mysql_fetch_array($query)) {
        $feedtitle = $row['feed_title'];
        $feedurl = $row['feed_url'];
        $feedorder = $row['feed_order'];
        $feedowner = $row['feed_owner'];
    }
?>
<form action="update.php" method="post">
<input type="hidden" name="ID" value="<?=$UID;?>">
Title:<br /> <input type="text" name="ud_feedtitle" value="<?=$feedtitle?>"><br>
URL: <br /> <input type="text" name="ud_feedurl" value="<?=$feedurl?>"><br>
Order: <br /> <input type="text" name="ud_feedorder" value="<?=$feedorder?>"><br>
Owner:<br /> <input type="text" name="ud_feedowner" value="<?=$feedowner;?>"><br>
<input type="Submit">
</form>
<?php
}else{
    echo 'No entry found. <a href="javascript:history.back()">Go back</a>';
}
?>
</div>
</body>
</html>

update.php

    <?php



$ud_ID = $_REQUEST["ID"];
$ud_feedtitle = $_POST["feed_title"];
$ud_feedurl = $_POST["feed_url"];
$ud_feedorder = $_POST["feed_order"];
$ud_feedowner = $_POST["feed_owner"];


$query = "UPDATE user_feeds SET feed_title = '$ud_feedtitle', feed_url = '$ud_feedurl', feed_order = '$ud_feedorder', feed_owner = '$ud_feedowner', WHERE feed_id = '$ud_ID'";


$res = mysql_query($query);

if ($res)
  echo "<p>Record Updated<p>";

else
  echo "Problem updating record. MySQL Error: " . mysql_error();

?>
4

1 に答える 1

2

理由:

入力フィールドの名前は、$_POSTに入力される名前と同じです。現在リクエストしている変数:

$_POST["feed_title"];, $_POST["feed_url"];,  $_POST["feed_order"];, $_POST["feed_owner"];

存在しないため、すべて空です。更新すると、テーブルの値が空白の値に置き換えられます。


解決:

代わりにupdate.php,、次のものが必要です。

$ud_ID = $_POST["ID"];
$ud_feedtitle = $_POST["ud_feedtitle"]; //corresponding to <input type="text" name="ud_feedtitle" ...
$ud_feedurl = $_POST["ud_feedurl"]; //corresponding to <input type="text" name="ud_feedurl" ...
$ud_feedorder = $_POST["ud_feedorder"]; //corresponding to <input type="text" name="ud_feedorder" ...
$ud_feedowner = $_POST["ud_feedowner"]; //corresponding to <input type="text" name="ud_feedowner" ...
于 2012-07-29T14:57:00.300 に答える