0

コードをより効率的にするには、mysql 列を 1 行で UPDATE するコードをどのように書くことができますか? 出来ますか?

現在のコードの例。

if (isset($_POST['editsongname'])) {
$id = $_POST['songid'];
    $newtitle = mysql_real_escape_string($_POST['songname']);
    $doSongNameEdit = "UPDATE `$database_main`.`lyrics` SET `lyrics`.`title` = '$newtitle' WHERE `lyrics`.`id` = '$id' LIMIT 1" or die(mysql_error());

    $retval = mysql_query( $doSongNameEdit, $main );
    if(! $retval )
    {
        die('Could not update data: ' . mysql_error());
    }
    header("Location: song.php");
    //echo "<b>Updated Successfully</b> - <a href=\"song.php\">Return to edit lyrics page</a>\n ";
    }

(フォームコード)

> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" name="<?php echo
> $sid; ?>"  method="POST"> <input type="hidden" name="songid"
> value="<?php echo $sid; ?>">

(sid の例) 228106 編集をデータベース内の正しい場所に直接接続する

では、非表示のフォーム フィールドは動的情報をこのコードにどのように渡すのでしょうか?コードを合理化することしかできないのでしょうか?それとも可能でしょうか?

4

2 に答える 2

1

問題は、GET メソッドを使用することです。つまり、フォームのすべての変数がアドレス バーに表示されます。POST メソッドを使用するにはフォームを変更する必要があります

<form name="name" action="url.php" method="POST" target="_blank">
...
</form>
于 2012-10-23T01:01:40.730 に答える
0

使用しているフォーム メソッド ($_GET または $_POST) によって異なります。

<input type="hidden" name="songid" value="<?php echo $sid; ?>"> 

$id = $_GET['songid']; 
-- OR --
$id = $_POST['songid']; 


$doTextEdit = "UPDATE texts 
               SET texts.text = '$newtext' 
               WHERE 
               texts.id = '$id'";

LIMITDBクエリにも必要ありません。

于 2012-10-23T01:03:53.507 に答える