我需要你的帮助,我有这个表小提琴(真正的表有另外4个提供者列,总共6个),我需要一些数组插入到DB中,我一直在尝试这个:
$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旁边再增加一个字母,希望你能理解我。谢谢!
您的数据是二维的——对于每个prov_name$i
,您有一系列的$unitval$i$j
和totalval$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++;
}
这个方法使用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());
}