1

我是 php 和 MySQL 的新手。

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

我在这里设置了 3 张桌子。

  1. 下载(包含有关特定下载的信息,每个都有自己的 id)。
  2. 模型(包含一个可能的设备模型(模型名称)列表,每个模型都有自己的 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; 
    ';

要显示哪些型号支持下载,这一行是echod:

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

现在举个例子,我的页面的 $pageId 为“1”,即下载“example1”,“example1”支持模型 1(model1)、2(model2) 和 3(model3)。当$dpModSupportechod 时,它回显为"model1model2model3"

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

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

我正在寻找一种通过 php 执行此操作的方法。我不知道是否可以构造查询以输出结果之间的间距,所以我猜测 php 是那里唯一的解决方案。

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

4

2 回答 2

1

问题

通过在循环中编写:

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

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

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

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


解决方案

相反,您可以在循环之前编写:

$dpModSupport = Array();

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

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

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

echo implode(', ', $dpModSupport);

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

于 2011-07-06T19:17:23.373 回答
0

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

$dpModSupport = array();
$dpModSupport[] = stripslashes($row['model']);
echo implode(', ', $dpModSupport);
于 2011-07-06T19:16:11.487 回答