此代码正在从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"]
答案 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