我需要你的帮助,我有这个表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旁边需要另一个增量字母,希望你能理解我。 谢谢!
答案 0 :(得分:1)
您的数据是二维的 - 对于每个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++;
}
答案 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());
}