2012-04-15 59 views
-1

原来这就是我想要做的..结合数组元素连接成一个字符串

$sql="SELECT * FROM `members"; 
while($rew = mysql_fetch_array($sql)){ 
    $var[] =",'".$rew['username']."'"; 
} 
print_r ($var) 

所以我得到的结果是:

Array ([0] => ",'John'", [1] => ",'Mason'", [2] => ",'Greg'", [3] => ",'Paul'") 

所以现在我想的变量显示全部当我回应的结果。例如:

<?php echo $var[1] ?> 

而结果将只是,'Mason'

我如何得到它,以便我可以echo $ var [*]并获得所有结果。 “约翰·梅森,格雷格保罗”。

我一直在试图弄清楚这很长一段时间,对我来说变得非常沮丧。有人可以帮帮我吗。

+0

如何标题涉及到这个问题? – 2012-04-15 00:28:38

+0

请问你的问题时不要SHOUT。它不会让你更快注意到它,它会让你的主题更难阅读。这也浪费了编辑人员修复它的时间,他们可能会利用这段时间尝试回答问题。谢谢。 :) – 2012-04-15 00:30:10

+0

@ZianChoy:只是改变它,以更好地反映意图。 – 2012-04-15 00:34:27

回答

2

使用PHP的implode函数。

<?php echo implode(",", $var) ?> 

,改变你的循环代码:

$var[] = $rew['username']; 
+0

实际上,他的循环已经将逗号附加到开头。所以每个项目的格式是','Name'。 – animuson 2012-04-15 00:34:09

+0

@animuson:刚注意到我自己。修改我的答案。 – 2012-04-15 00:35:59

+0

我真的很感激你的帮助。这工作!非常感谢你和其他人。 – Brian 2012-04-15 00:50:41

1

不能阵列上直接使用回声。您可以使用像这样的控制结构来循环访问阵列,其中foreach,或者您可以使用专为操作阵列而设计的内置函数。为了得到输出你正在寻找尝试:

<?php echo implode(',', $var);?> 
0

这里有一个很好的教程:Tizag - MySQL Fetch Array

这应该工作:

$query = "SELECT * FROM `members`"; 
$result = mysql_query($query) or die(mysql_error()); 
while($row = mysql_fetch_array($result)){ 
    echo $row['username']; 
    echo "<br />"; 
} 
0

您可以将循环更改为类似:

$var = ""; 
while($rew = mysql_fetch_array($sql)){ 
    $var .= ",'" . $rew['username'] . "'"; 
} 
0

这里是一个简单的单线程,也添加引号

<?php echo "'" . implode("','", $var) . "'"; ?> 

,如果你使用PDO,你可以得到的用户名更容易

<?php 
$usernames = $db->query("SELECT username FROM members")->fetchAll(PDO::FETCH_COLUMN); 
echo "'" . implode("','", $usernames) . "'"; 
?> 
相关问题