我设法从回复表中获得回复的唯一方法是通过群组连接,但所有回复都显示在一行中。我需要每行都显示每个回复。我试图在mysql查询后以各种方式爆炸它。我发现大多数爆炸代码只适用于echo而不能用于行。他们是一种爆炸方式或其他方式来分开回复。基本上,一旦我将回复分组到帖子/图像,只会出现一个回复,但是当我分组连接时,所有回复都会出现,但只出现在一行中。我已设法用空格或逗号分隔它们,但它们仍保持一行。
<?php
$sql = "
SELECT images.mid, images.id, images.who, header.username, images.message, images.name, GROUP_CONCAT(reply.reply
SEPARATOR 0x1E ) as heat
FROM header, images
LEFT JOIN reply ON reply.reply = reply.mid
OR reply.mid = images.mid
WHERE images.name IS NOT NULL = header.id
AND images.who IS NOT NULL
AND images.message IS NOT NULL
GROUP BY images.mid
";
$rs = mysql_query( $sql );
while ( $row = mysql_fetch_array( $rs )
) {
$name = $row['name'];
$mid = $row['mid'];
$title = $row['title'];
$who = $row['who'];
$details = $row['details'];
$message = $row['message'];
$id = $row['id'];
$heat = explode(',', $row['heat']);
$heat = array (".",$row['heat']);
foreach($heat as $heat)
$row=mysql_fetch_array($rs);
if($row){
$name= $row['name'];
?>
<td>
<table>
<tr>
<td>
<a href="a/<?=$name ?>" rel='lightbox' title='$timestamp - $message'> <img src= "a/<?=$name ?>" width='150' height='100'" > </a> </td>
</tr>
<tr> <td> <?=$row['name'] ?>
</td> </tr>
<tr>
<td> <?=$row['who'] ?> </td> </tr>
<tr>
<td> <?=$row['message'] ?></td> </tr>
<tr>
<td> <?=$row['id'] ?></td> </tr>
<tr>
<td> <?=$row['mid'] ?> </td> </tr>
<tr>
<td> <?=$row['username'] ?></td>
</tr><tr>
<td> <?=$row['heat'] ?></td>
</tr>
</table>
</td>
<?
}
else{
echo "<td> </td>"; //If there are no more records at the end, add a blank column
}
} while($row);
echo "</table>";
?>
</div>
</body>
</html>
这是我用group concat回复的结果。
She fell, she ate, she came, its good, okay.
我设法把它变成了一个阵列,但我也被困在了那个阵容上。 对于那些了解CSS的人。他们是将数据数组放入行的方法。我记得看过它,但不记得该怎么做。
答案 0 :(得分:0)
关闭循环:您在内循环中第二次调用mysql_fetch_array
并引用$row['heat']
,而不是使用您已经拥有的$heat
并进行拆分。删除第二次获取并使用$heat
。 :)