如何为此表创建数组插入

时间:2014-07-11 22:28:04

标签: php mysql sql

我需要你的帮助,我有这个表Fiddle(真正的表有另外4个提供者列,共6个)我需要一些数组插入数据库,我一直在尝试这个:

    $rowb = array();
    $i = 1;
    while (isset($_POST["prov_name$i"])) {
        $rowb[] = array($_POST["prov_name$i"],$_POST["unitval$i"], $_POST["totval$i"]);
        $i++;
    }

    foreach ($rowb as $row) {
        $query = 'INSERT INTO provprices (CA_id, prov_name, unitval , totval)
                            VALUES ("'.$CA_id.'","'.$row[0].'","'.$row[1].'","'.$row[2].'")';
        mysql_query($query) or die(mysql_error());
    }

但我认为,$ i旁边需要另一个增量字母,希望你能理解我。 谢谢!

2 个答案:

答案 0 :(得分:1)

您的数据是二维的 - 对于每个prov_name$i,您有一系列$unitval$i$jtotalval$i$j。所以你需要嵌套循环:

$i = 1;
while (isset($_POST["prov_name$i"])) {
    $prov_name = mysql_real_escape_string($_POST["prov_name$i"]);
    $j = 1;
    while (isset($_POST["unitval$i$j"])) {
        $unitval = intval($_POST["unitval$i$j"]);
        $totalval = intval($_POST["totalval$i$j"]);
        $query = "INSERT INTO provprices (CA_id, prov_name, unitval, totalval)
                  VALUES ('$CA_id', '$prov_name', $unitval, $totalval)";
        mysql_query($query) or die(mysql_error());
        $j++;
    }
    $i++;
}

答案 1 :(得分:0)

此方法使用Joomla 3版本插入记录

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$columns = array(
    $db->quoteName('CA_id'),
    $db->quoteName('prov_name'),
    $db->quoteName('unitval'),
    $db->quoteName('totval')
    );
$rowb = array();
$i = 1;
if (isset($_POST["prov_name"])) {
    $rowb[] = $jinput->post->get("prov_name$i", '', 'string').",".$jinput->post->get("unitval$i", '', 'string').",".$jinput->post->get("totval$i", '', 'string');
    $i++;
}
foreach ($rowb as $row) {
    $values[] = $db->quote($CA_id).",".$db->quote($row[0]).",".$db->quote($row[1]).",".$db->quote($row[2]);
}
$query
        ->columns($columns)
        ->values(implode(',',$values))
        ->insert($db->quoteName('#__supersite_contact'));
$db->setQuery($query);
if (!$db->execute()) {
    throw new Exception($db->getErrorMsg());
}