-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,因此表单中的方法应该是 get 即:method = "GET"

print_r($_REQUEST);在页面顶部让您更好,并相应地做其他事情。

请参阅此链接以了解单引号和双引号之间的差异:PHP 中单引号和双引号字符串有什么区别?

于 2013-02-11T06:28:16.557 回答
0

如果您使用迭代器生成了文本框,您可能想要执行类似的操作,

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

与其使用列名(如 c1、c2、c3、c4)保存到数据库,不如尝试一列,将其称为 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 回答