gpt4 book ai didi

php - 将选中的单选按钮提交到数据库

转载 作者:可可西里 更新时间:2023-11-01 08:36:48 25 4
gpt4 key购买 nike

我正在创建一种单选按钮形式,例如:

   <dl>  
<dt><label for="a1">Meatballs?</label></dt>
<dd>
<input type="radio" value="yes" name="A_1">
</dd>
<dd>
<input type="radio" value="no" name="A_1">
</dd>
<dd>
<input type="radio" value="maybe" name="A_1">
</dd>
</dl>

...

<dl>
<dt><label for="b3">Coffee?</label></dt>
<dd>
<input type="radio" value="yes" name="B_3">
</dd>
<dd>
<input type="radio" value="no" name="B_3">
</dd>
<dd>
<input type="radio" value="maybe" name="B_3">
</dd>
</dl>
<dl>
<dt><label for="b4">Tea?</label></dt>
<dd>
<input type="radio" value="yes" name="B_4">
</dd>
<dd>
<input type="radio" value="no" name="B_4">
</dd>
<dd>
<input type="radio" value="maybe" name="B_4">
</dd>
</dl>

我想将 thise 插入到具有如下结构的数据库中:

INSERT INTO `notes` ( `group`, `data` ) VALUES ...

我正在处理 php 中设置其中一些值,例如:

$b = "Choices";

// these would be the groups
$bg3 = "Coffee";
$bg4 = "Tea";


// these are the data values
$bp3 = $_POST['B_3'];
$bp4 = $_POST['B_4'];

$b3 = array( $b, $bg3, $bp3 );
$b4 = array ($b, $bg4, $bp4 );

所以在我看来,如果我需要插入组值,因为已经选择了第三个选项,我将有 $group = $b3[1]; $data = $b3[2]

在我的示例中,将有大约 25 个选择,最后有一个提交。我需要帮助来了解循环遍历所有选中的单选按钮并将它们的值插入到它们需要去的地方的最有效方法是什么?

我需要将这些全部取消选中并且不进行处理,除非它们已做出选择。我是否需要为任何一个插入语句编写插入语句?

更新

多亏了下面的答案,我现在有了一种更有效的方法来将所有值放入一个数组中,因此使用 dqhendricks 示例我可以为每个集合(a、b 等)生成一个这样的数组:

print_r($b);

Array ( [0] => Array ( [0] => Choices [1] => [2] => ) [1] => Array ( [0] => Choices [1] => Milk [2] => ) [2] => Array ( [0] => Choices [1] => Water [2] => yes ) [3] => Array ( [0] => Choices [1] => Coffee [2] => ) [4] => Array ( [0] => Choices [1] => Tea [2] => ) [5] => Array ( [0] => Choices [1] => Beer [2] => ) [6] => Array ( [0] => Choices [1] => Wine [2] => ) )

这个数组是通过选中第二个单选按钮生成的。

最佳答案

更新:将我的原始解决方案与 bqhendrick 的解决方案合并,并重构您的原始形式以阐明 var 名称并使其更简单。

首先,您应该为单选按钮提供默认值(CHECKED 属性)以避免 NULL,并且应该正确命名单选输入。而不是 A_1、B_1 等,将它们命名为它们所指的“组”。示例:

<dl>  
<dt><label for="a1">Meatballs?</label></dt>
<dd>
<input type="radio" value="yes" name="Meatballs">
</dd>
<dd>
<input type="radio" value="no" name="Meatballs">
</dd>
<dd>
<input type="radio" value="maybe" name="Meatballs" CHECKED>
</dd>
</dl>

...

<dl>
<dt><label for="b3">Coffee?</label></dt>
<dd>
<input type="radio" value="yes" name="Coffee">
</dd>
<dd>
<input type="radio" value="no" name="Coffee">
</dd>
<dd>
<input type="radio" value="maybe" name="Coffee" CHECKED>
</dd>
</dl>
<dl>
<dt><label for="b4">Tea?</label></dt>
<dd>
<input type="radio" value="yes" name="Tea">
</dd>
<dd>
<input type="radio" value="no" name="Tea">
</dd>
<dd>
<input type="radio" value="maybe" name="Tea" CHECKED>
</dd>
</dl>

完成后,现在只需使用以下内容即可轻松制作插入语句:

$count=count($_POST);
$counter=0;
$query="INSERT INTO `notes` ( `group`, `data` ) VALUES ";
$resource=mysql_connect('host', 'mysql_user', 'mysql_password');
foreach ($_POST AS $key => $value) {
$key=mysql_real_escape_string($key);
$value=mysql_real_escape_string($value);
$query.="('$key', '$value')";
$query.=($counter<$count-1) ? ", " : ";";
$counter++; //To know whether to put , or ; in SQL sentence
}
//echo $query; //To test it prior to insert for debugging purposes
mysql_query($query);
mysql_close($resource);

它应该这样做。

编辑以清理一些 $_POST 数据以避免可能的 SQL 注入(inject)。

关于php - 将选中的单选按钮提交到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9708559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com