将php foreach变量推入mysql表

时间:2013-12-29 06:29:58

标签: php mysql foreach

我的page1有一个简单的表单,其中包含名称和带复选框的项目列表。我正在通过帖子将数据传递给Page2。当我回显变量$itemPush时,它会显示所选项目的确切列表。但问题是当我将相同的变量添加到sql查询中但它没有将整个项目推入表中时,而是只推送已选择的最终项目。请帮助我的代码。

$name = $_POST['name'];
$items = $_POST['items'];

foreach($items as $selectedItems){
     $itemsPush =  'http://www.example.com/'.$selectedItems.',';
     echo $itemsPush;
}

$sql = "INSERT INTO pages (name, itemsPush) VALUES('$name', '$itemsPush')";

5 个答案:

答案 0 :(得分:0)

使用以下代码

foreach($items as $selectedItems){
     $itemsPush =  'http://www.example.com/'.$selectedItems.',';
     echo $itemsPush;
     $sql = "INSERT INTO pages (name, itemsPush) VALUES('$name', '$itemsPush')";
}

答案 1 :(得分:0)

您需要在添加到DB之前连接结果,否则它将始终添加最后一项。如下所示

$name = $_POST['name'];
$items = $_POST['items'];
$itemsPush = '';
foreach($items as $selectedItems){
    $itemsPush .=  'http://www.example.com/'.$selectedItems.',';
    echo $itemsPush;
}
$sql = "INSERT INTO pages (name, itemsPush) VALUES('$name', '$itemsPush')";

答案 2 :(得分:0)

您已将$ itemsPush定义为变量,因此对于每个循环,它都被最新值覆盖,因此在循环结束时只会将lasy值存储在其中。

将$ itemsPush定义为类似

的数组
 $itemsPush[] = 'http://www.example.com/'.$selectedItems.',';

然后最后将数组编码为

$items = json_encode($itemsPush);

然后插入如下 -

$sql = "INSERT INTO pages (name, itemsPush) VALUES('$name', '$items')";

答案 3 :(得分:0)

$itemsPush只是一个变量。因此,当循环结束时,它具有$items数组中的最后一个值。因此,如果您希望将$items数组den的所有值声明为$itemsPush作为数组并继续将值存储在循环中。

 while($items as $selectedItems){
     $itemsPush[] = 'http://www.example.com/'.$selectedItems.',';
  }

现在您可以按照您想要的方式使用$itemsPush[]

答案 4 :(得分:0)

你能试试吗,

$itemsPush = '';
foreach($items as $selectedItems){
    $itemsPush .=  'http://www.example.com/'.$selectedItems.',';
    echo $itemsPush;
}
 $itemsPush = serialize($itemsPush);
$sql = "INSERT INTO pages (name, itemsPush) VALUES('$name', '$itemsPush')";