-1

変数を使用して名前を付けたテキスト ボックスの配列があります (各テキスト ボックスには一意の名前があります)。これらのテキスト ボックスのデータを ID とともに取得し、データベースに保存したいと考えています。次のコードを使用してこれを試しましたが、うまくいきませんでした。

if($_GET['btn1']=="Submit"){
 for ($p=0;$p<12;$p++){
   $qty=$_GET['text$p'];
   mysql_query("UPDATE model SET column$m='$qty' WHERE `ModelName`='$rt'"); 
   }      
}

私はPHPの初心者です。どんなアイデアでも素晴らしいでしょう。ありがとう。

4

3 に答える 3

0

$qty=$_GET['text$p'];に変更して$qty=$_GET['text'.$p];試してください

テキスト名が次のようになっていると仮定します:text1、text2、...など

注:$ _ GETを使用したため、フォームのメソッドは次のようになります。method = "GET"

print_r($_REQUEST);ページの上にあなたを良くし、それに応じて他のことをしてください。

一重引用符と二重引用符の違いについては、このリンクを参照してください:PHPの単一引用符と二重引用符の文字列の違いは何ですか?

于 2013-02-11T06:28:16.557 に答える
0

イテレータを使用してテキスト ボックスを生成した場合、おそらく次のようなことをしたいと思うでしょう。

$qty=$_GET['text'.$p];

c1、c2、c3、c4 のような列名で db に保存する代わりに、1 つの列を試して、それを col と呼び、テキスト ボックスを配列として保存するように設定します。

<input name="col[]" value="apple">
<input name="col[]" value="pear">
<input name="col[]" value="banana">

ここで、リンゴとバナナにチェックマークを付けてフォームを php に送信すると、値の配列が取得されます。

var_dump( $_GET['col'] ); 

のようなものを返します。

array(2) {
  [0] =>  string(5) "apple"
  [1] =>  string(6) "banana"
}

データベースに保存する

mysql_query("UPDATE model SET col='".json_encode($_GET['col'])."' WHERE `ModelName`='$rt'");

列を取得するときは、json_decode を実行する必要があります。入力を出力するときに、次のようなことができるようになりました。

<input name="col[]" value="apple" <? if (in_array('apple', $col)) echo "CHECKED='CHECKED'"; ?> >
于 2013-02-11T05:42:25.897 に答える
0

このようにしてみてください:

テキストボックス名は、使用しているため文字ではありません-それらはletter_0、letter_1などです.

また、 interval は MySQL の予約語であり、バッククォートを使用してエスケープする必要がありますinterval

それらすべてを取得するには、 $letter1 = $_POST['letter_1']; のようにすべての名前をハードコードするか、別のループでそれを実行できます。

for ($i=0; $i<5; $i++) {
    $letter = $_POST['letter_' . $i]; 
    $interval = $_POST['interval' . $i]; 
    $gt = $_POST['gt' . $i]; 
    $s = mysql_query("INSERT INTO `grad_table` (`letter`, `interval`, `gt`) VALUES ('$letter',$interval,$gt)");
}
于 2013-02-11T05:43:06.897 に答える