我有一个简单的数据库连接:
$rowdata = mysql_query("SELECT * FROM table_names");
while($row = mysql_fetch_array($rowdata)) {
echo "".$row['name'].",";
}
我希望打印出来:
亚当,索菲亚,汤姆,布莱恩而不是:
亚当,索菲亚,汤姆,布莱恩,如何以最佳方式排除最后一个逗号?
答案 0 :(得分:10)
$rowdata = mysql_query("SELECT name FROM table_names");
$names = array();
while($row = mysql_fetch_array($rowdata)) {
$names[] = $row['name'];
}
echo implode(', ', $names);
答案 1 :(得分:4)
不是直接回应它,而是将它放入一个变量(也许名为$ values)中,然后执行:
$values = rtrim($values,",");
答案 2 :(得分:2)
在每个条目前打印逗号并省略第一个:
$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']);
}
答案 3 :(得分:1)
最后你可以在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'];
}
答案 4 :(得分:0)
$rowdata = mysql_query("SELECT * FROM table_names");
$names = array();
while($row = mysql_fetch_array($rowdata)) {
$names[] = $row['name'];
}
echo implode( $names, ',' );
顺便说一句,如果您只使用“名称”列,那么最好SELECT name FROM ..
答案 5 :(得分:0)
成功..
$names = array();
while ( $row = mysql_fetch_array( $rowdata ) ) {
$names[] = $row['name'];
}
$names = implode(', ', $names);
echo $names;