如何在使用WHILE时判断我是否处于最后结果,以便可以省略输出中的逗号?

时间:2011-10-03 05:30:42

标签: while-loop

我知道我可以通过获取总记录来做我需要做的事情,如果我在最后一条记录中,不要显示逗号,但必须有更好的方法。

我正在尝试使用MySQL中的值以编程方式构建SQL语句。

代码:

$fql="SELECT ";

$result = mysql_query("SELECT field FROM fb_aa_fields WHERE fql_table = '$query'", $conn);

while ($row = mysql_fetch_array($result)){
    $get_field = "".$row{'field'}."";


$fql = $fql."$get_field, ";

}

$fql = $fql."FROM ".$query." WHERE owner=".$get_uid.""; 

输出:

SELECT辅助,can_upload,cover_object_id,cover_pid,created,description,edit_link,link,location,modified,modified_major,name,object_id,owner,photo_count,size,type,video_count,visible,FROM album WHERE owner = 522862206

问题是“可见”和“FROM”之间的最后一个逗号。您如何建议使逗号消失的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

检测你是否处于第一个元素而不是最后一个元素,这不是一件痛苦的事。你可以这样做

$i = 0;
while($row =...) {
    if ($i++) $fql .= ',';
    $fql .= $row['field'];
}

或者,可能更好,将字段添加到字符串直到结尾。有一个名为implode的内置函数,您可以使用它在它们之间插入逗号。

$fields = array();
while($row =...) {
    $fields[] = $row['field'];
}
$fql .= implode(',', $fields);