1つのテーブルのすべての行の1つの同じ列を更新したいのですが、誰かがテーブルを更新する方法を教えてもらえますか?すべての行の値を更新する必要がある入力フィールドは1つだけです。このコードは機能していません。インデックスと配列に何か問題があることがわかります。
<?php
<form method="post" dir="rtl" name="maxcharfield" >
<textarea onKeyDown="textCounter(this,'progressbar1',300)"
onKeyUp="textCounter(this,'progressbar1',300)"
onFocus="textCounter(this,'progressbar1',300)"
style="font-family:'B_yekan';" id="text" name="text" rows="0" cols="0" class="required"></textarea>
<div class="cleaner h10"></div>
<div style="font-family:'B_yekan';" dir="rtl" id="progressbar1" class="progress" ></div>
<script>textCounter(document.getElementById("maxcharfield"),"progressbar1",100)</script>
<input class="styled-button-8" style="margin-top:10px; float:right; margin-right:50px; font-size: 14px; padding: 5px 14px;" type="submit" value="save" name="Submit" />
<input style="font-family:'B_yekan';" type="reset" value="reset" id="reset" name="reset" class="submit_btn float_l" />
</form>
<?php
// for updating Check if button name "Submit" is active, do this
if(isset($_POST['Submit']) && $_POST['Submit'] == 'save')
{
$sql1="UPDATE `".$tbl_name."` SET `board`='".$_REQUEST['text']."' ";
$result1=mysql_query($sql1);
}
}
?>
ソリューションが複雑になりすぎています。すべてのレコードを更新するために、あなたが取ろうとしているアプローチは次のとおりです。
UPDATE
構文には、これを行うためのはるかに簡単な方法があります。 WHERE
句をUPDATE
ステートメントに指定する必要はありません。この句がないと、デフォルトでテーブル内のすべてのレコードが更新されます。
_UPDATE TableName SET `board`='value'
_
Also、コードに SQLインジェクション の脆弱性があることに注意してください。 SQLクエリで_$_REQUEST['text']
_を直接使用すると、すべてのユーザーがSQLコードをクエリに送信できるようになります。コードは、送信されたものをすべて実行します。これにより、データが破損または削除されたり、サーバーへの管理アクセスが可能になったりする可能性があります。
まず、_mysql_*
_関数の使用を停止してください。 PHPは非推奨になったため、使用しないでください。 a _mysqli_
_ replacement があります。それに加えて、 mysqli_real_escape_string()
function SQLクエリで入力を使用する前に入力をサニタイズし、最後に、値をSQL文字列に直接連結する代わりに 準備済みステートメント を使用します。