如何在Joomla 3.0或PHP中将多维数组保存到数据库

如何在Joomla 3.0或PHP中将多维数组保存到数据库,php,mysql,arrays,joomla3.0,Php,Mysql,Arrays,Joomla3.0,我有一个多维数组,在需要添加到Joomla 3中的数据库表的数组中,它的长度可以从1到40+个数组不等。下面是一个带有4个阵列的示例: Array ( [0] => Array ( [0] => Array ( [0] => 5 [1] => cbb807 [2] =

我有一个多维数组,在需要添加到Joomla 3中的数据库表的数组中,它的长度可以从1到40+个数组不等。下面是一个带有4个阵列的示例:

    Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => 5
                    [1] => cbb807
                    [2] => 8
                    [3] => 8
                    [4] => Polycorp3-1
                    [5] => Polycorp3
                    [6] => 18
                    [7] => 339.00000
                    [8] => 339.00000
                    [9] => 339.00000
                    [10] => 82
                    [11] => 2250
                    [12] => Phone
                    [13] => Polycorpm
                    [14] => Jones

                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [0] => 5
                    [1] => cbb807
                    [2] => 8
                    [3] => 8
                    [4] => Polycorp3-1
                    [5] => Polycorp3
                    [6] => 18
                    [7] => 339.00000
                    [8] => 339.00000
                    [9] => 339.00000
                    [10] => 82
                    [11] => 2250
                    [12] => Phone
                    [13] => Polycorpm
                    [14] => Jones

                )

        )

    [2] => Array
        (
            [0] => Array
                (
                    [0] => 5
                    [1] => cbb807
                    [2] => 8
                    [3] => 8
                    [4] => Polycorp3-1
                    [5] => Polycorp3
                    [6] => 18
                    [7] => 339.00000
                    [8] => 339.00000
                    [9] => 339.00000
                    [10] => 82
                    [11] => 2250
                    [12] => Phone
                    [13] => Polycorpm
                    [14] => Jones
                )

        )

    [3] => Array
        (
            [0] => Array
                (
                    [0] => 5
                    [1] => cbb807
                    [2] => 8
                    [3] => 8
                    [4] => Polycorp3-1
                    [5] => Polycorp3
                    [6] => 18
                    [7] => 339.00000
                    [8] => 339.00000
                    [9] => 339.00000
                    [10] => 82
                    [11] => 2250
                    [12] => Phone
                    [13] => Polycorpm
                    [14] => Jones
                )

        )
我这样做的代码是:

    $dbo = JFactory::getDbo();
$query = $dbo->getQuery(true);


$columns = array( 'ordering', 'state', 'checked_out', 'created_by', 'devicetype', 'manufacturer', 'model', 'serialnumber', 'market', 'cost', 'date_purchased', 'partner', 'current_customer', 'current_location', 'original_customer', 'date_recieved', 'date_recently_deployed', 'notes', 'ordernumber', 'status', 'ist', 'arp', 'walken', 'cheese', 'pt_id', 'budgeted_cost', 'firmware', 'other_ist', 'sell_price', 'current_term');

$values = array();


foreach ($data as $key => $array) {
$values = array(1,1,0,82,$db->quote($data['12']),$db->quote($data['13']),$db->quote($data['5']),$db->quote($Serial_Number),$db->quote($Market),$db->quote($data['7']),$db->quote($Date_Purchased),$db->quote($data['14']),$db->quote($data['11']),$db->quote($Current_Location),$db->quote($Previous_Customer),$db->quote($Date_Recieved),$db->quote($Date_Time_was_deployed_currently),$db->quote($Notes),$db->quote($Order_Number),$db->quote($Status),$db->quote($aa),$db->quote($bb),$db->quote($cc),$db->quote($dd),$db->quote($deviceId),$db->quote($Budgeted_Costs),$db->quote($Firmware),$db->quote($ee),$db->quote($Sell_Price),$db->quote($Current_Term_in_Months));

}



$query->insert($dbo->quoteName('#__inventory_einventoryitems'));
$query->columns($columns);

$query->values($values);

$dbo->setQuery($query);
$dbo->execute();
我遇到的问题是它正在运行,但它似乎返回了ARRAY(),并且没有任何内容保存到数据库中。看来应该行得通。我知道我犯了一个错误,我只是看不到哪里


我更喜欢使用joomla类,但如果有人在php/mysql中有更好的解决方案。我对此也持开放态度。

如果您知道如何使用纯php将其存储在MySQL中,那么最简单的方法就是使用一些扩展,比如“JUMI”,它允许您在joomla中使用php,而不使用joomla类。 以下是joomi扩展的链接:

我以前也用过类似的东西。在这种情况下,我把它埋在一个控制器里。因此,它不会访问任何文章或模块。我认为我的错误在于我如何执行foreach循环。它似乎应该是正确的,但我认为我做得不对。我不确定我是否正确理解了您的代码,但我认为在foreach的值行中,您必须使用$array,而不是$data。。。不,不,您已经在foreach中交换了变量-它必须是foreach($key=>$data数组),可能是它的一部分。但现在我得到一个错误:错误:1136-列计数与第1行的值计数不匹配SQL=INSERT INTO
jyxdf\u inventory\u einventoryitems
(订购、说明、签出、创建人、设备类型、制造商、型号、序列号、市场、成本、购买日期、合作伙伴、当前客户、当前位置、原始客户、收到日期、最近部署日期、注释等)值(1)、(1)、(0)、(82)、(“”),(“”),(“”),(“”),(“”),(“”),(“”),(“”),(“”),(“”),(“”),(“”),(“”),(“”),(“”),(“”),(“”),(“”),(“”),(“”),(“”),…我数了数,长度很好。30和30我不知道为什么我会看到这个错误是的,这是问题的第一部分-如果你收到这个消息,这意味着你现在进入每个周期。第二个问题是你有30列,但29个值-再次数一次-我也这样做了。谢谢你的关注!我也这样做了好的。但是每个都有30个。我数了几次,然后放在文本编辑器中,然后机械地数。另外,有趣的是,我只使用数组每行中的8个变量来计算每一新行,其余的要么是空白的,要么是手动放置的。但是,新数组中没有显示任何数据来输入ot她的桌子。