4

I've been reading in every thread in here that is related to this but I always get it wrong.

Please help cause I always get the error

"Notice: Array to string conversion" in line "$address[] = mysql_result($row, 0 );"

below. Please help.

if ($p_address=mysql_query($email))
{
$address = array();

while($row = mysql_fetch_assoc($p_address))
{     
 $address[] = mysql_result($row, 0 );
}  

$all_address = implode(',', $address);
4

2 回答 2

3

更改此行

 $address[] = mysql_result($row, 0 );

对此:

 $address[] = $row;

然后要查看新$address数组中可用的键和值,您可以执行以下操作:

 print_r($address);

为了保持implode()功能,请执行以下操作:

for ($i = 0; $i < count($address); $i++) {
  $all_address[] = implode(',', $address[$i]);
}

最终输出:

if ($p_address=mysql_query($email))
{
$address = array();

while($row = mysql_fetch_assoc($p_address))
{     
 $address[] = $row;
}

for ($i = 0; $i < count($address); $i++) {
  $all_address[] = implode(',', $address[$i]);
}

// Example for outputting on screen:
foreach ($all_address as $aa) {
  print $aa . "<br/>\n";
}
}

希望有帮助...

于 2013-05-05T18:10:11.727 回答
0

$row 在 while 循环的每次迭代中设置。每次它包含一个新的表记录。所以你只需要在地址数组中添加每条记录。

   while($row = mysql_fetch_assoc($p_address))
   {     
      $address[] = $row;
   }  
于 2013-05-05T18:12:32.900 回答