我正在尝试将数组中的多个结果合并为一个变量。
$sqlNameForCode = "Select dim_InvoiceRef from dimensions"." Where dim_FileRef = '".$addRow[$FieldName]."'";
$qryNameForCode = mysql_Query($sqlNameForCode);
While($arrNameForCode = mysql_fetch_array($qryNameForCode)) {
$addRow[$FieldName] = $arrNameForCode['dim_InvoiceRef'];
}
我需要变量$addRow[$FieldName]
来包含从数组中取出的所有字段。但是因为它在While循环中,所以只有最后一个字段留在变量中。
示例,查询会提取以下结果
Apple
Banana
Orange
我需要echo $addRow[$FieldName]
来显示Apple Banana Orange
,此时它恰好等于Orange
。
任何帮助都会非常感谢!
答案 0 :(得分:1)
你需要把它变成一个数组
While($arrNameForCode = mysql_fetch_array($qryNameForCode)) {
$addRow[$FieldName][] = $arrNameForCode['dim_InvoiceRef']; //notice the extra braces
}
echo implode(' ', $addRow[$FieldName]); //prints the values in the array separated by a space
或直接将其分配给字符串
$addRow[$FieldName] = "";//defaults
While($arrNameForCode = mysql_fetch_array($qryNameForCode)) {
$addRow[$FieldName] .= $arrNameForCode['dim_InvoiceRef']; //string concatenation
}
echo $addRow[$FieldName];
答案 1 :(得分:0)
这是一个基于MySQL的解决方案,您可能会觉得更容易:
$sql = "SELECT GROUP_CONCAT(dim_InvoiceRef SEPARATOR ' ') FROM dimensions WHERE dim_FileRef = '".$field."'";
$query = mysql_query($sql);
$result = mysql_fetch_row($query);
echo $result[0]; // Should show 'Apple Orange Banana' etc.
我冒昧地在你的例子中重命名一些变量,以便更容易理解。除非您需要在程序中稍后使用相同的数据执行不同的操作,否则这应该可行。