PHP MYSQL值变量

PHP MYSQL值变量,php,mysql,sql,loops,string-concatenation,Php,Mysql,Sql,Loops,String Concatenation,我想将数据库中的值保存在字符串中。我学过PHP,但还是不懂这个等级 $db_user = $database->runSQLQuery("SELECT * FROM users"); while($feld = mysql_fetch_array($db_user)){ $save= $feld['username'].","; } // Tom,Anne,Alf echo $save; 不幸的是,它在这里为我保存了一个值:tom,试试这个: $save = ''; $

我想将数据库中的值保存在
字符串中
。我学过PHP,但还是不懂这个等级

$db_user = $database->runSQLQuery("SELECT * FROM users");
while($feld = mysql_fetch_array($db_user)){ 
   $save= $feld['username'].",";     
}
// Tom,Anne,Alf
echo $save;
不幸的是,它在这里为我保存了一个值:
tom,
试试这个:

$save = '';
$db_user = $database->runSQLQuery("SELECT * FROM users");
while($feld = mysql_fetch_array($db_user)) 
{ 
   $save .= $feld['username'].","; 

}
// Tom,Anne,Alf
echo $save;

$save
变量现在将数据库中的结果添加到字符串中,这称为连接。您可以阅读更多信息。

WHILE循环每次都会覆盖您的
$save
。如果要将其与前面的值连接起来,请使用
$save.=$feld['username'](注意额外的


但是,这最终会产生Tom、Anne、Alf,因此您应该删除最后一个“,”以获得所需的结果。

如您的评论所示,后面不带逗号

$save = "";
$concat = "";
$db_user = $database->runSQLQuery("SELECT * FROM users");
while($feld = mysql_fetch_array($db_user)) 
{ 
   $save .= $concat . $feld['username'];
   $concat = ",";
}

// Tom,Anne,Alf
echo $save;

可以在不引入其他变量的情况下处理尾随逗号。我通常是这样做的:

    $save = "";
    $db_user = $database -> runSQLQuery('SELECT username FROM users', MYSQL_ASSOC);
    while ( $feld = mysql_fetch_array($db_user)) {
        if ( $save != "" ) $save .= ',';
        $save .= $feld['username'];
    }
我已经更改了您的选择,以明确您只对用户名感兴趣。它也更快

指定MYSQL\u ASSOC(而不是默认的MYSQL\u二者)也更快更干净,因此不会得到所有字段的两个副本


在风格上,我总是在PHP中对简单字符串使用单引号,因此PHP不需要检查变量替换等。但有一个例外:我对空字符串使用
'
,因为
'
很容易与
混淆“

,因为它始终显示最后一个值。了解循环的工作原理。您正在为while循环的每个迭代重新分配
$save
,并且仅在最后一次迭代后打印。这就是为什么它只打印“汤姆”真的??但很简单-谢谢:DNo问题!如果这解决了您的问题,请检查它作为正确答案:)