我是 php 和 MySQL 的新手。
我正在我的网站上制作一个处理移动下载的脚本。
我在这里设置了 3 个表。
- 下载(包含有关特定下载的信息,每个都有自己的 ID)。
- models(包含一个可能的设备型号列表(型号名称),每个型号都有自己的 ID)。
- 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)。当$dpModSupport
为echo
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 手册中查找这些函数和语言特性作为练习。
关于php - 查询结果显示间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6601613/