我想从MySQL写入数据到PHP数组(用PHP库FluidXML生成一个XML文件)。当我回显数组时,我只能得到它的第一个值,但是当我使用与数组相同的数据回显一个变量时,我会得到具有所有信息的正确输出。让我来解释更确切地说:PHP数组输出只是第一个值
查询得到的数据:
$sql = sprintf("select b.nPosID, b.nAmount, b.sName, .......");
$result = mysql_query($sql);
然后我循环槽结果:
$msg = "";
$orderArticles = [];
$orderSubArticles = [];
while($data = mysql_fetch_array($result))
{
if($data['sChange'] != null) {
$msg .= ' * ' . $data['sChange'] . ' ' . number_format($data['nAmount'] * $data['nPriceChange'], 2) . "\r\n";
$orderSubArticles[] = ['SubArticle' => [
'ArticleNo' => '0',
'ArticleName' => $data['sChange'],
'Count' => $data['nAmount'],
'Price' => $data['nPriceChange']
],];
}
if ($nPosID != $data['nPosID']) {
$msg .= " \r\n" . $data['nAmount'] . ' x ' . $data['sName'] . ' ' . number_format($data['nAmount'] * $data['nPrice'], 2) . "\r\n";
$orderArticles[] = ['Article' => [
'ArticleNo' => '0',
'ArticleName' => $data['sName'],
'ArticleSize' => '0',
'Count' => $data['nAmount'],
'Price' => $data['nPrice'],
'Tax' => '10',
'SubArticleList' => [
$orderSubArticles
]],];
}
}
假设,从SQL查询得到以下正确的输出:
Pizza
+ extra cheese
+ extra tonno
当我回显$ msg变量时,我得到相同的正确结果。但是,当我回声阵列,我只得到的第一个值:
Pizza
+ extra cheese
被精确地,将其与从所述数组中的值所产生的输出:
<ArticleList>
<Article>
<ArticleName>Pizza</ArticleName>
<Count>1</Count>
<Price>12.9</Price>
<SubArticleList>
<SubArticle>
<ArticleName>Extra cheese</ArticleName>
<Count>1</Count>
<Price>3</Price>
</SubArticle>
</SubArticleList>
</Article>
</ArticleList>
所以第二<SubArticle>
丢失(额外的tonno)。
你可以添加'var_dump($ result)'的输出吗? – AMartinNo1
我得到“类型(mysql结果)的资源(19)”。 –