gpt4 book ai didi

php - 更改 while 循环的输出样式

转载 作者:行者123 更新时间:2023-11-29 01:14:41 24 4
gpt4 key购买 nike

我有一个 while 循环从 MySQL 数据库获取信息,通过 php 输出信息。我的代码是这样的:

while($row = mysql_fetch_array($result)) {
$output .= '<tr>' . "\r";
$output .= '<td>' . $row['lnID'] . '</td>' . "\r";
$output .= '<td>' . $row['lnLine'] . '</td>' . "\r";
$output .= '<td>' . $row['lnTitle'] . '</td>' . "\r";
$output .= '<td>' . $row['cLongName'] . '</td>' . "\r";
$output .= '</tr>' . "\r";
}

cLongName数据库中可以有多个条目,因此它以这种形式输出数据:

lnID  | lnLine  | lnTitle  | cLongName
---------------------------------------
lnID1 | lnLine1 | lnTitle1 | cLongname1
lnID1 | lnLine1 | lnTitle1 | cLongname2
lnID1 | lnLine1 | lnTitle1 | cLongname3
lnID2 | lnLine2 | lnTitle2 | cLongname1
lnID2 | lnLine2 | lnTitle2 | cLongname2
lnID2 | lnLine2 | lnTitle2 | cLongname3
lnID2 | lnLine2 | lnTitle2 | cLongname4
lnID2 | lnLine2 | lnTitle2 | cLongname5

我想要这种格式的数据:

lnID  | lnLine  | lnTitle  | cLongName
---------------------------------------------------------------------------------------
lnID1 | lnLine1 | lnTitle1 | cLongname1, cLongname2, cLongname3
lnID2 | lnLine2 | lnTitle2 | cLongname1, cLongname2, cLongname3, cLongname4, cLongname5

我已经尝试在 while 循环中插入 foreach 循环,但没有成功。任何想法或帮助将不胜感激。

-- 编辑--

我的MySQL查询如下:

$result = mysql_query("
SELECT
pcdb_line.lnID, pcdb_line.lnLine, pcdb_line.lnTitle,
pcdb_colourways.cwLine, pcdb_colourways.cwColID1,
pcdb_colour_name.cID, pcdb_colour_name.cLongName, pcdb_colour_name.cHex
FROM pcdb_line
GROUP BY pcdb_line.lnID
LEFT JOIN pcdb_colourways
ON (pcdb_line.lnID = pcdb_colourways.cwLine)
LEFT JOIN pcdb_colour_name
ON (pcdb_colour_name.cID = pcdb_colourways.cwColID1)
LIMIT 50
");

根据 ADW 的回答,我尝试了 group_concat就在 cLongName ,全部pcdb_colour_name但它没有给我任何输出。

-- 编辑 2--

更改 SELECT对此进行查询:

  $result = mysql_query("
SELECT
pcdb_line.lnID, pcdb_line.lnLine, pcdb_line.lnTitle,
pcdb_colourways.cwLine, pcdb_colourways.cwColID1,
pcdb_colour_name.cID, group_concat(pcdb_colour_name.cLongName) AS cLongNames, pcdb_colour_name.cHex
FROM pcdb_line
LEFT JOIN pcdb_colourways
ON (pcdb_line.lnID = pcdb_colourways.cwLine)
LEFT JOIN pcdb_colour_name
ON (pcdb_colour_name.cID = pcdb_colourways.cwColID1)
GROUP BY pcdb_line.lnID
LIMIT 50
");

允许我使用$output .= "\t\t" . '<td>' . $row['cLongNames'] . '</td>' . "\r";在我的 php 上,给我所需的输出。

最佳答案

您可能最好将数据库查询修改为:

select lnID,lnLine,lnTitle,group_concat(cLongName) from table group by lnID,lnLine,lnTitle;

关于php - 更改 while 循环的输出样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6438137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com