从 mysql php 的多级数组

标签: MySQL PHP
发布时间: 2017/4/9 21:47:32
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有此数组的一个例子,如何从查询从数据库获取相同的结果吗?,我需要替换的值的数据库的值。

$data = array(
array(
    'qty' => 1,
    'Price' => 1.00,
    'total' => 1.00
),
array(
    'qty' => 2,
    'Price' => 1.00,
    'total' => 2.00
),
array(
    'qty' => 3,
    'Price' => 1.00,
    'total' => 3.00
)

);

然后在示例中使用 nusoap lib

foreach($data as $concept) {
$par['Concepts'][] = new soapval('Concept', 'Concept', $concept);
}

所以我需要致电查询︰

$query_data_cot = mysql_query("SELECT * FROM data WHERE id='1'"); 

while($data_quote=mysql_fetch_array($query_data_cot)){
$conceptosDatos[]["qty"]=$data_quote['qty'];
$conceptosDatos[]["Price"]=$data_quote['price'];
$conceptosDatos[]["total"]=$data_quote['total'];
}

但当我做这些的时候我得到了一个错误

 Error: Array ( [faultcode] => soap:Server [faultstring] => Server was unable to process request. --->

谢谢

解决方法 1:

每次您使用 $conceptosDatos[]... [] 将创建一个新的子数组。所以您的结果会是这样的事情

array(
    array('qty' => ..),
    array('Price' => ..),
    array('total' => ...),
    array('qty' => ..),
    array('Price' => ..),
    array('total' => ...),
    ...
)

相反,您需要创建一个新的子数组仅为一套完整,所以使用这样的事情

$query_data_cot = mysql_query("SELECT qty, price, total FROM data WHERE id='1'"); 
while($data_quote=mysql_fetch_assoc($query_data_cot)){
    $conceptosDatos[] = $data_quote;
}

当然你也可以就像这样

$query_data_cot = mysql_query("SELECT qty, price, total FROM data WHERE id='1'"); 
while($data_quote=mysql_fetch_assoc($query_data_cot)){
    $conceptosDatos[] = array(
        'qty' => $data_quote['qty'],
        'Price' => $data_quote['price'],
        'total' => $data_quote['total'],
    );
}

但为什么写每个字段如果你要复制整个阵列吗?

如果你需要使用不同的名称 (如您的示例所示 pricePrice ),您可以更改您的数据库架构或给你这段代码在您的查询中使用别名︰

$query_data_cot = mysql_query("SELECT qty, price AS Price, total FROM data WHERE id='1'"); 
while($data_quote=mysql_fetch_assoc($query_data_cot)){
    $conceptosDatos[] = $data_quote;
}

这样做的好处,如果你想要在将来修改您的代码,你只需要修改查询 (和可能可以封装此逻辑函数内部)-所以少未来为你工作。


顺便说一句,你看手册 》 中的大的红色框上的所有 mysql_* 方法的网站吗?它已被否决,PDO 以及 MySQLi 方式更好的选择。这有助于决定如何使用。

官方微信
官方QQ群
31647020