查询结果之间的间距


Spacing between displayed query result

我是php和MySQL新手。

我在我的网站上做一个脚本,处理移动下载。

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

  1. 下载(包含有关特定下载的信息,每个下载都有自己的id)。
  2. models(包含一个可能的设备型号列表(型号名称),每个型号都有自己的id)。
  3. downloads_models(链接表,说明download_id = model_id,例如:(1,2) (1,3) (2,1))

我有一个简单的查询来显示支持每个特定下载的模型。内容如下:

    $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是唯一的解决方案。

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

问题

在循环中这样写:

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

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

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

,从而得到一个字符串,该字符串只是每行的内容彼此相邻。


解决方案

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

$dpModSupport = Array();

然后,在它里面,不是.=建立一个字符串,而是建立一个数组:

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

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

echo implode(', ', $dpModSupport);

我将把这些函数和语言特性留给读者在PHP手册中查找作为练习。

将名称存储在数组中,然后在末尾将它们连接起来。

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