将值添加到数组中

时间:2012-02-01 12:20:29

标签: php mysql arrays while-loop

此代码正在从mysql db表中读取,并且应该返回几个名称。但每个名称都以分开的字符串形式发送。我需要一个字符串。这是代码:

<?php
session_start();

function prList($REQUEST){

  include ('into_sql.php');
  mysql_select_db("db394771350", $conn);

  $usr = $REQUEST["usnm"];
  $fID = $REQUEST["friendID"];
  $sql = mysql_query("SELECT * FROM users WHERE username='$usr'");
  $a=mysql_fetch_array($sql);

  $uID = $a["id"];

  $res1 = mysql_query("SELECT * FROM friends WHERE friendID='$uID' AND accept='0'");
  while($b=mysql_fetch_array($res1)){
    $fuID = $b["userID"];

    $res2 = mysql_query("SELECT * FROM users WHERE id='$fuID'");

    while($c=mysql_fetch_array($res2)){

      $usrn = $c["username"];
      $array = array("$usrn");
      encode($array);
    }
  }
}
?>

这是输出:

["rhys"]["alexroan"]["bobjosh"]["xc.j.gingex"]["tom"]

4 个答案:

答案 0 :(得分:2)

$usrn = "";
while($c=mysql_fetch_array($res2)){

$usrn .= $c["username"];
}
echo $usrn;

答案 1 :(得分:0)

如何定义函数encode? 我建议将$array = array("$usrn");替换为$array[] = $c["username"],最后只需通过`$string = implode($array)将所有条目内容转换为一个字符串

答案 2 :(得分:0)

为什么不直接连接结果?

$result = "";
$i = false;
while ($c=mysql_fetch_array($res2)){
   if ($i)
      $result .= ' ';
   $result .= $c["username"];
   $i = true;
}

echo $result;

答案 3 :(得分:0)

检查出来可能是有帮助的

FIND_IN_SET(STR,strlist)

如果字符串str位于由N个子字符串组成的字符串列表strlist中,则返回1到N范围内的值。字符串列表是由用“,”字符分隔的子字符串组成的字符串。如果第一个参数是常量字符串而第二个参数是SET类型的列,则FIND_IN_SET()函数被优化为使用位算术。如果str不在strlist中,或者strlist是空字符串,则返回0。如果任一参数为NULL,则返回NULL。如果第一个参数包含逗号(“,”)字符,则此函数无法正常工作。

的MySQL&GT; SELECT FIND_IN_SET('b','a,b,c,d');          - &GT; 2