显示的查询结果之间的间距

时间:2011-07-06 19:06:56

标签: php mysql echo spacing

我是php和MySQL的新手。

我正在我的网站上制作一个处理移动下载的脚本。

我设置了3个表,我在这里处理。

  1. 下载(包含有关特定下载的信息,每个下载都有自己的ID)。
  2. models(包含列表可能的设备模型(模型名称),每个模型都有自己的id)。
  3. downloads_models(链接表说明download_id = model_id,例如。(1,2)(1,3)(2,1))。
  4. 我有一个简单的查询来显示支持每个特定下载的模型。它如下:

        $dlDetailsQuery = 'SELECT models.model
        FROM models,downloads_models
        WHERE downloads_models.modId = models.model_id
        AND downloads_models.downId = "'.$pageId.'"
        ORDER BY models.model ASC; 
        ';
    

    要显示哪些型号支持下载,此行为echo d:

        $dpModSupport .= stripslashes($row['model']);
    

    现在作为示例,我的页面的$ pageId为“1”,即下载“example1”,“example1”支持模型1(model1),2(model2)和3(model3)。当$dpModSupportecho d时,它会回显为"model1model2model3"

    我的问题是:如何获得间距或结果之间的逗号?

    我的目标是“model1,model2,model3”的输出。

    我正在寻找通过php实现此目的的方法。我不知道是否可以构造一个查询来输出结果之间的间距,所以我猜测php是唯一的解决方案。

    我不想在模型名称字段中添加间距或逗号,或者创建一个包含间距或逗号以及模型名称的新字段。

2 个答案:

答案 0 :(得分:1)

问题

通过循环编写:

$dpModSupport .= stripslashes($row['model']);

你正在构建一个这样的字符串:

$dpModSupport .= stripslashes(<MODEL1>);
$dpModSupport .= stripslashes(<MODEL2>);
$dpModSupport .= stripslashes(<MODEL3>);

因此以一个字符串结尾,这个字符串只是彼此相邻的每一行的内容。


解决方案

相反,你可以在循环之前写这个:

$dpModSupport = Array();

然后,在其中,而不是使用.=构建字符串的行,构建数组:

$dpModSupport[] = stripslashes($row['model']);

最后,要获得由所述数组的每个元素组成的输出,用逗号连接:

echo implode(', ', $dpModSupport);

我将把它作为练习留给读者在PHP手册中查找这些功能和语言功能。

答案 1 :(得分:0)

将名称存储在数组中,然后在最后加入它们。

$dpModSupport = array();
$dpModSupport[] = stripslashes($row['model']);
echo implode(', ', $dpModSupport);