2013-02-15 139 views
1

我有一个循环查看某些产品名称并将其放在页面上的查询。作为循环的一部分,它增加了一个逗号结束,所以它看起来是这样的:PHP循环,在除最后一个循环以外的每个循环之后添加一个逗号

产品:衬衫,裤子,领带,夹克,

通知的最后一个产品之后,我得到一个逗号。此外,他们都是各个环节,所以我不能用一些strreplace FX或类似:

这里是我的代码:

<?php 
$product_query = mysql_query("select * from products_table); 
$row_product_query = mysql_fetch_assoc($product_query); 
$totalRows_product_query = mysql_num_rows($product_query); 
?> 
<strong>Products: </strong> 
<?php if ($totalRows_product_query > 0) { ?> 
<?php do { ?> 
<span><a href="link"><?php echo $row_product_query['products_name']; ?></a></span> 
<strong>,&nbsp;</strong> 
<?php } while ($row_product_query = mysql_fetch_assoc($product_query)); ?> 
<?php } ?><br /> 

什么我需要做的,使那最后一个逗号没有出现?

一如既往地提前致谢。

+1

它添加到一个变量,并做['substr'](http://php.net/manual/en/function.substr.php)以除去最后一个逗号。 – Antony 2013-02-15 19:34:42

+2

看一下php implode函数: – Tucker 2013-02-15 19:36:36

+0

打印循环外的第一个链接,然后循环中的每个额外链接用逗号进行处理 – 2013-02-15 19:37:36

回答

2

使用PHP破灭功能

<?php 
    $str = ""; 
    $product_query = mysql_query("select * from products_table"); 
    $row_product_query = mysql_fetch_assoc($product_query); 
    $totalRows_product_query = mysql_num_rows($product_query); 
    $cnt = 0; 
?> 
<strong>Products: </strong> 
<?php if ($totalRows_product_query > 0) { ?> 
<?php do { 
    $arr[$cnt] = '<span><a href="link">'.$row_product_query['products_name'].'</a></span>'; 
    $cnt++; 
<?php } while ($row_product_query = mysql_fetch_assoc($product_query)); ?> 
<?php } 
    echo implode("<strong>,</strong>",$arr); 
?><br /> 
+0

谢谢Tucker(和其他人) – Kevin 2013-02-15 20:06:41

0

修复它们如何被存储/输入数据库? 否则, <?php echo str_replace(",", "", $row_product_query['products_name']); ?> 应该工作

+0

逗号在循环过程中添加,它们不存储在数据库中'放下它们在页面上。作为循环的一部分,它在最后加上逗号' – 2013-02-15 19:39:13

0

正如@tucker说,你可以使用破灭功能。 Implode Function。你会用一个数组使用它像这样

$a_string = implode(",",$the_result_array);

这会给你你想要的结果。