如何敲掉这个PHP结果集的最后一个逗号?

时间:2013-12-01 07:46:00

标签: php mysql list comma

这是我用来显示mysql列表的代码,但我无法弄清楚如何删除最后一个逗号。因为它不是数组,所以rtrim不起作用。有关最简单方法的想法吗?

 if ($db_found) {

    $SQL = "SELECT * FROM people order by time DESC LIMIT 10";
    $result = mysql_query($SQL);

    while ($db_row = mysql_fetch_assoc($result)) {

    $myresults=$db_row['title'];
    echo ucwords($myresults);

    echo ", ";

    }}

如果把它变成阵列是首选,我不介意..只是不太确定如何做到这一点。什么是最好的? 谢谢!

4 个答案:

答案 0 :(得分:2)

您可以将所有标题存储到数组中,就像您已经完成的那样但略有不同,因为您当前的代码只会将最后一个标题存储到$myresults中。您可能没有注意到这一点,因为您在每次迭代中都会回显它。

要回答您的问题,请将所有标题存储在$myresults数组中,然后使用implode以逗号连接数组元素。

if ($db_found) {

    $SQL = "SELECT * FROM people order by time DESC LIMIT 10";
    $result = mysql_query($SQL);

    $myresults = array();
    while ($db_row = mysql_fetch_assoc($result)) {
      $myresults[] = ucwords($db_row['title']);
    }

    echo implode(",", $myresults);
}

注意:您正在使用自PHP 5.5.0起不推荐使用的mysql_函数。您应该考虑切换到MySQLi或PDO。

答案 1 :(得分:0)

试试这个:

$separator = "";
while ($db_row = mysql_fetch_assoc($result)) {
  $myresults = $db_row['title'];
  echo $separator;
  $separator = ", ";
  echo ucwords($myresults);
}

答案 2 :(得分:0)

if ($db_found) {

$SQL = "SELECT * FROM people order by time DESC LIMIT 10";
$result = mysql_query($SQL);
$comma = "";
while ($db_row = mysql_fetch_assoc($result)) {

$myresults=$db_row['title'];
echo $comma;
echo ucwords($myresults);
$comma = ", ";

}}

答案 3 :(得分:0)

以这种方式尝试,

 if ($db_found) {

    $SQL = "SELECT * FROM people order by time DESC LIMIT 10";
    $result = mysql_query($SQL);
    $count = 1;
    while ($db_row = mysql_fetch_assoc($result)) {

       $myresults=$db_row['title'];
       echo ucwords($myresults);

       if(count($db_row) > $count)
           echo ", ";

       $count++;

}}