这是我用来显示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 ", ";
}}
如果把它变成阵列是首选,我不介意..只是不太确定如何做到这一点。什么是最好的? 谢谢!
答案 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++;
}}