我有一个简单的数据库连接:
$rowdata = mysql_query("SELECT * FROM table_names");
while($row = mysql_fetch_array($rowdata)) {
echo "".$row['name'].",";
}
我想把它打印出来:
Adam,Sophia,Tom,Brian
而不是:
Adam、Sophia、Tom、Brian、
如何以最佳方式排除最后一个逗号?
$rowdata = mysql_query("SELECT name FROM table_names");
$names = array();
while($row = mysql_fetch_array($rowdata)) {
$names[] = $row['name'];
}
echo implode(', ', $names);
与其直接回显它,不如将它放入一个变量(可能名为$values(中,然后执行:
$values = rtrim($values,",");
在每个条目前打印逗号并省略第一个:
$first = TRUE;
while(($row = mysql_fetch_array($rowdata)) !== FALSE) {
if(!$first) echo ',';
echo htmlspecialchars($row['name']);
$first = FALSE;
}
另一种方法是使用提取回显循环中的第一行,这样就不必在每次迭代中评估if语句(过早优化ftw!(:
if(($row = mysql_fetch_array($rowdata)) !== FALSE)
echo htmlspecialchars($row['name']);
while(($row = mysql_fetch_array($rowdata)) !== FALSE) {
echo ',', htmlspecialchars($row['name']);
}
最后你可以在mysql:中完成
select group_concat(name) from table_names
总的来说,这将变成:
$rowdata = mysql_query("SELECT group_concat(name) as names FROM table_names");
while($row = mysql_fetch_array($rowdata)) {
echo $row['names'];
}
$rowdata = mysql_query("SELECT * FROM table_names");
$names = array();
while($row = mysql_fetch_array($rowdata)) {
$names[] = $row['name'];
}
echo implode( $names, ',' );
顺便说一句,如果您只使用"name"列,那么最好执行SELECT name FROM ..
让它。。
$names = array();
while ( $row = mysql_fetch_array( $rowdata ) ) {
$names[] = $row['name'];
}
$names = implode(', ', $names);
echo $names;