将多个值排列到变量中
Posted
技术标签:
【中文标题】将多个值排列到变量中【英文标题】:Array multiple values to variable 【发布时间】:2015-04-01 08:01:48 【问题描述】:作为学校项目的一部分,我在制作网站时需要一点帮助。 我有一个多选表单,将值作为数组发送。
如果我使用 print_r($_POST);看看我得到了什么。
我看到我得到 [tilbehor] => 数组 ( [0] => 11 [1] => 19 [2] => 20 ) 来自“tilbehor”表单域。
没关系。我得到的值是 11、19 和 20。-这些都是我在表单中选择的数据库中的 ID。
但是我需要这些 ID 来从我的数据库中选择一些东西,并回显数据库中的 ID = 数组中的 ID 的结果...
现在我使用的代码有效,但前提是从表单字段“tilbehor”发送一个值 我使用此代码将发送的表单字段转换为变量。
$t_id = $_POST['tilbehor']
这是为了让它显示数据库中 ID 为 mach 的所有内容的名称
$query = "SELECT * FROM tilbehor WHERE t_id='$t_id'";
$result = $db->query($query);
$num_rows = $result->num_rows;
if($num_rows > 2)
while($row = mysqli_fetch_array($result))
echo "
∙ 1 stk - <b>".$row['tilbehor_navn']."</b><br>
";
else
echo "Der er ikke valgt noget tilbehor";
但这不起作用,因为它只能处理 WHERE = 语句中的 1 个值... 当数组发送多个值时,我需要知道如何让它工作.. :/.. 有什么想法吗?
【问题讨论】:
最简单的方法是implode()
您的帖子并在您的查询中使用IN
运算符。
【参考方案1】:
$t_id = $_POST['tilbehor'];
$t_id=implode(',',$t_id);//impload the value with the ',' and used IN operate to get all the value relate this id (11, 19 and 20)
$query = "SELECT * FROM tilbehor WHERE t_id IN ($t_id)";
//"SELECT * FROM tilbehor WHERE t_id IN (11,19,20)"
$result = $db->query($query);
$num_rows = $result->num_rows;
if($num_rows > 2)
while($row = mysqli_fetch_array($result))
echo "
∙ 1 stk - <b>".$row['tilbehor_navn']."</b><br>
";
else
echo "Der er ikke valgt noget tilbehor";
【讨论】:
【参考方案2】:// Join array with comma separator
$ids = implode(',', $_POST['tilbehor']);
// Create the sql statement
$sql = "SELECT * FROM tilbehor WHERE t_id IN($ids)";
// Execute sql here...
【讨论】:
【参考方案3】:试试这个..
$ids = array('11', '19', '29');
$ids = implode(',', $ids);
$query = "SELECT * FROM tilbehor WHERE t_id IN ('$ids')";
【讨论】:
以上是关于将多个值排列到变量中的主要内容,如果未能解决你的问题,请参考以下文章