将PHP数组插入两列

时间:2012-02-15 06:54:17

标签: php arrays

我知道可以拆分要插入多个列/行的数组,但我只是难倒。

说我们有类似的东西.... 排列 (     [john] =>蓝色     [lee] =>红色     [sylva] =>绿色     [paul] =>黑

在我的表中,我有三列,即id,name,color。如何插入这些元素,以便我的表中的行递增(基于此数组,它应该总共4行).. 感谢。

5 个答案:

答案 0 :(得分:2)

如果您的意思是要将数组插入数据库表,那么:


foreach($yourArr as $name => $color) {
  //your insert query here
  $name = mysql_real_escape_string($name);
  $color = mysql_real_escape_string($color);
  $sql = "INSERT INTO TABLE_NAME VALUES ('$name', '$color')";
  $query = mysql_query($sql);
}

你的意思是这样的......

答案 1 :(得分:0)

$counter=1;  
foreach ($yourarray as $key=>$item){  
  ?> <tr>  
    <td> <? echo $counter; ?></td>  
    <td> <? echo $key; ?></td>  
    <td> <? echo $item; ?></td>

    </tr><?  
    $counter++;
}

如果你的意思是html table。

答案 2 :(得分:0)

如果你的id有auto_increment这就是我使用的解决方案:

$data = Array ( 'john' => 'blue', 'lee' => 'red', 'sylva' => 'green', 'paul' => 'black');
$items = array();
foreach($data as $key => $val) $items[]="('$key', '$val')";
$sql = "insert into table (`name`,`color`) values".implode(',',$items);
echo $sql;

答案 3 :(得分:-1)

$query = '';
foreach($array as $key=>$value){
   $query .= "insert into table(name,color) values('".$key."','".$value."')";
}
echo $query;

由于没有数组中的条目,您的插入查询将被构建,您可以触发DB来更新表(假设自动增量ID)

答案 4 :(得分:-1)

更好/最佳解决方案!

<?php

$data = Array ( 'john' => 'blue', 'lee' => 'red', 'sylva' => 'green', 'paul' => 'black');

$sqlPart='';
foreach($data as $key => $val)
    $key = mysql_real_escape_string($key);
    $val = mysql_real_escape_string($val);
    $sqlPart .= "('$key' , '$val'), ";
$sqlPart = rtrim($sqlPart , ', ').';';
$sql = 'INSERT INTO `table`(`name`,`color`) VALUES '.$sqlPart;
echo $sql;

?>

输出:

INSERT INTO tablenamecolor)VALUES

('john','blue'),  ('lee','red'),  ('sylva','green'),  ('保罗','黑');