【问题标题】:Spacing between displayed query result显示的查询结果之间的间距
【发布时间】:2011-09-29 21:43:54
【问题描述】:

我是 php 和 MySQL 的新手。

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

我在这里设置了 3 个表。

  1. downloads(包含有关特定下载的信息,每个都有自己的 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 是那里唯一的解决方案。

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

【问题讨论】:

  • 最近在问题中不断出现的“im”这个词是什么? :(
  • 1) 什么是$row?向我们展示您的真实代码。 2) 为什么是.= 而不仅仅是=
  • @Tomalak:Blackberry 要求其所有客户通过最高识字测试?
  • @Kerrek:呵呵不会让我吃惊
  • @Kerrek 将在一秒钟内发布完整的代码,但是 .= 存在是因为下载有多个选项,如果没有 .= ,它只会输出第一个选项。串联?

标签: php mysql echo spacing


【解决方案1】:

问题

通过循环编写:

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

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

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

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


解决方案

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

$dpModSupport = Array();

然后,在其中,而不是 .= 的行建立一个字符串,建立一个数组:

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

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

echo implode(', ', $dpModSupport);

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

【讨论】:

  • 谢谢你,感谢你花时间帮助我完成这个。
【解决方案2】:

将名称存储在一个数组中,然后将它们连接到最后。

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

【讨论】:

    猜你喜欢
    • 2021-05-24
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多