【问题标题】:Mysql to html table with linebreaks \r\n as one rowMysql to html table with linebreaks \r\n 作为一行
【发布时间】:2017-03-26 18:23:53
【问题描述】:

我有mysql表

有 3 列:id、name、number。

某些名称、数字字段有多个条目,但它们用\r\n 换行符分隔。但是名字和数量总是相同的。

例子:

name; number
First\r\n; fists\r\n
Second\r\n third\r\n; Second\r\n third\r\n

如何让它们在 html 表中显示为不同的行。

我试图通过以下方式实现这一点:

if(strpos($string, "\r\n") !== FALSE) {

但这只能让我知道当有超过 1 个条目时。 而且即使只有一个条目,我仍然有换行符,它并没有真正的帮助

【问题讨论】:

  • 我正在尝试在输出端进行此操作。他们都已经在 mysql 中了

标签: php mysql line-breaks


【解决方案1】:

您可以使用explode 将行与 SQL 结果分开。 http://php.net/manual/de/function.explode.php

$nameFromDatabase = "a \r\n b \r\n c";
$numberFromDatabase = "1 \r\n 2 \r\n 3";

$names = explode("\r\n", $nameFromDatabase);
$numbers = explode("\r\n", $numberFromDatabase);

for ($i = 0; $i < count($names) && $i < count($numbers); $i++) {
    echo "<tr><td>" + $names[i] + "</td><td>" + $numbers[i] + "</td></tr>";
}

【讨论】:

  • 愚蠢的我 :) 他们缺少 $names[i] 但必须是 $names[$i] 所以如果你修复答案,那么我可以给它一个大拇指:)
【解决方案2】:

这是另一种将其带到桌子上的方法:

$str = 'name; number
First\r\n; fists\r\n
Second\r\n third\r\n; Second\r\n third\r\n';

$exploded = explode('\r\n',$str);
array_walk($exploded,function(&$value){
    $value = '<td>'.$value.'</td>';
});

echo '<table><tr>'.implode('</tr><tr>',$exploded).'</tr></table>';

【讨论】:

    猜你喜欢
    • 2017-02-26
    • 1970-01-01
    • 2015-04-17
    • 2015-10-05
    • 2015-06-05
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    相关资源
    最近更新 更多