Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从“选择多个”中获取值并将其放入数据库_Php_Javascript_Jquery_Html_Css - Fatal编程技术网

Php 从“选择多个”中获取值并将其放入数据库

Php 从“选择多个”中获取值并将其放入数据库,php,javascript,jquery,html,css,Php,Javascript,Jquery,Html,Css,获取一个多重选择框的所有值的最佳方法是什么,然后我想将这些值保存在数据库的一行中,然后从该行中分别获取每个值。做这样的事情最好的方法是什么?我的目标是保存这些值,然后分别获取每个值 我认为您应该在$\u POST变量中接收作为数组选择的值,因此假设您的select有一个name=products 如果您是通过POST提交表单,则所选值将以$_POST[产品]形式显示 然后可以使用内爆函数生成字符串。例如: $myProducts = implode("|", $_POST["products"]

获取一个多重选择框的所有值的最佳方法是什么,然后我想将这些值保存在数据库的一行中,然后从该行中分别获取每个值。做这样的事情最好的方法是什么?我的目标是保存这些值,然后分别获取每个值

我认为您应该在$\u POST变量中接收作为数组选择的值,因此假设您的select有一个name=products

如果您是通过POST提交表单,则所选值将以$_POST[产品]形式显示

然后可以使用内爆函数生成字符串。例如:

$myProducts = implode("|", $_POST["products"]); //This will give you a pipeline delimeted string like : computer|laptop|monitor

$myProducts = mysql_real_escape_string($myProducts); //Just to santize before inserting in DB
然后将该字符串插入数据库

检索数据时,您可以使用explode函数反转该过程:

$myProducts = explode("|" , [The value retrieved from the database]); //This will give you an array which you can iterate and thus accessing the values individually.

希望这有帮助:

你可以这样做

<select name="foo[]" multiple="multiple">
     <option value="dog">Dog</option>
     <option value="cat">Cat</option>
     <option value="fish">Fish</option>
</select>

<?php

$pets = $_POST['foo'];

//sanitize and verify the input here. Escape properly and what not

$query = mysql_query("INSERT INTO `pets` (`pet1`, `pet2`, `pet3`) VALUES ('".$pets[0]."', '".$pets[1]."',  '".$pets[2]."')");
?>
宠物:

然后你会有一个更容易搜索和操作的数据库,它是一致的

获取一个多重选择框的所有值的最佳方法是什么

因为它是PHP。为select元素指定一个以[]结尾的名称,然后您可以以$\u POST['foo'][]的形式访问它们

然后我想把这些值保存在数据库中的一行中,然后从那一行中分别得到每个值


不要那样做。第二个表有两列。id作为计划存储数据和值本身的另一个表中的行的外键

如果我能很好地理解你的问题

$dataFromMultipleBox = array('data1', 'data2', 'data3');
$data = implode("||", $dataFromMultipleBox);

/*
After that,
write $data into database

fetch from the database again
*/

$pieces = explode("||", $rowFromDatabase);

foreach($pieces as $value) {
  echo $value;
  echo '<br>';
}

他们正在提交数据吗?另外,您要插入的表是什么样子的?是的,嗯。。只是一张有varchar的桌子,就是这样,还是这不是个好办法?id和值
id | user_id | type
-------------------
1  | 1       | Fish
2  | 1       | Cat
3  | 4       | Kakapo
$dataFromMultipleBox = array('data1', 'data2', 'data3');
$data = implode("||", $dataFromMultipleBox);

/*
After that,
write $data into database

fetch from the database again
*/

$pieces = explode("||", $rowFromDatabase);

foreach($pieces as $value) {
  echo $value;
  echo '<br>';
}