我想将列表选项值保存到MySQL中,然后再次将它们显示为列表。
我需要它来进行动态查询。
<select multiple id="to" size="15" name="to[]">
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">d</option>
</select>
这是将其更改为(a,b,c,d)的php代码:
$joinedString = array();
$var1 = $_POST['to'];
$joinedString = implode(',', $var1);
$joinedString;
我只是把它改成a,b,c,d和内爆函数,它工作得很好。
但不知道如何将其保存在mysql中,以及如何再次从数据库中提取数据并将其制作为:
<select multiple id="to" size="15" name="to[]">
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">d</option>
</select>
既然变量$joinedString
中有字符串a、b、c、d,只需使用它插入数据库即可。请记住,您需要像这样插入字符串"a,b,c,d",而不是简单地插入a、b、c、d。因此,首先将字符串格式化为逗号,如"a,b,c,d"。现在,您已经完成了,只需使用insert命令。
Insert into Table_name set column_name='".$joinedString."' where some_condition.
之后,如果必须再次使用它,您可以使用"Select"查询来检索它。
Select column_name from Table_name where Some_condition
它会以"a,b,c,d"的格式将变量返回给您。将其保存在某个变量$variable中。现在,您可以使用分解函数来使用逗号生成此字符串的数组。
$arr_string = explode(",",$variable);
This $arr_string would be an array like this
array(0=> a,
1=> b,
2=> c,
3=> d)
现在您可以使用foreach在这个数组上循环,并选择select选项。
<select multiple id="to" size="15" name="to[]">
<?php
foreach($variable as $key=>$val)
{
echo "<option value='".$val."'>".$val."</option>";
}
?>
</select>
如果您在数据库中存储逗号分隔的值,您可以使用查询从数据库中获取值,并根据结果,您可以简单地使用PHP的explore函数在文件中实现该值:
<?php
$joinedString = 'a,b,c,d'; // fetched data from database using query if you are storing data within database comma separated
$data = explode(',',$joinedString);
?>
<select multiple id="to" size="15" name="to[]">
<?php foreach($data as $key => $value){?>
<option value="<?php echo $value; ?>"><?php echo $value; ?></option>
<?php } ?>
</select>
我想这可能是意料之中的答案。。