结合mysql数组中的多行

时间:2012-03-31 13:41:21

标签: php mysql arrays

正确的家伙我遇到了麻烦。

我想要做的是拥有一个由mysql查询构成的变量。我遇到的问题是它需要包含查询中的多行并将它们合并为一行。

目前我有

$lender = mysql_query("Select * from lender where reference = '$reference'");
while($lenderrow=mysql_fetch_array($lender)) {
    $lender1 = $lenderrow["lender"] . " " . $lenderrow["lenderref"] . " " . "£" . $lenderrow["amount"]
    echo '<br />';
}

所以基本上我希望它采用这种格式,如果它有多行

  

blackhorse htfhg125h£250

     

santander htdhfr58hryf£541

     

测试125452asaed2£760

目前我只获得最后一个结果,当我回显$ lender 1时(显然是因为它是while循环中的最后一次调用)

提前干杯

2 个答案:

答案 0 :(得分:0)

只需将echo放入循环中即可。循环不限于一个语句。

$lender = mysql_query("Select * from lender where reference = '$reference'");

while($lenderrow = mysql_fetch_array($lender)) {
    $result = $lenderrow["lender"] . " " . $lenderrow["lenderref"] . " " . "£" . $lenderrow["amount"];
    echo $result . "<br />";
}

如果你想在数组中使用它,你也可以使用一个空的while循环:

$lender = mysql_query("Select * from lender where reference = '$reference'");
$results = array();

while($results[] = mysql_fetch_array($lender)); // Empty loop

此外,如果$reference是用户提供且未转义,则可能需要注意SQL注入。

答案 1 :(得分:0)

您需要使用其他阵列。

<?php
$lender = mysql_query("Select * from lender where reference = '$reference'");
$formated_lender = array();
while ($lenderrow=mysql_fetch_array($lender)) {

  $formated_lender = $lenderrow["lender"] . " " . $lenderrow["lenderref"] . " " . "£" .            
  $lenderrow["amount"];
}

foreach ($formated_lender as $row)
{
  echo $row . '<br />';
}

或者,如果您只想包含所有行的一个变量,请将$lende1 = ...替换为$lender1 .= ...