Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当循环不工作时,使用group by时仅显示一条记录_Php_Sql_While Loop - Fatal编程技术网

Php 当循环不工作时,使用group by时仅显示一条记录

Php 当循环不工作时,使用group by时仅显示一条记录,php,sql,while-loop,Php,Sql,While Loop,我有一个表MySQL,其中项目可能是重复的,x行的room_number和menu_probelm与y行的room_number和menu_probelm相同。我试图只显示y行,如果它是x行的副本。该表有4行,具有相同的房间编号和菜单问题值,但col3注释不同。出于某种原因,它向我展示了第一个复制品rowy,而不是另外两个 这是我的密码: $query_Recordset1 = "SELECT *, count(*) FROM damage GROUP BY room_number, menu_

我有一个表MySQL,其中项目可能是重复的,x行的room_number和menu_probelm与y行的room_number和menu_probelm相同。我试图只显示y行,如果它是x行的副本。该表有4行,具有相同的房间编号和菜单问题值,但col3注释不同。出于某种原因,它向我展示了第一个复制品rowy,而不是另外两个

这是我的密码:

$query_Recordset1 = "SELECT *, count(*) FROM damage GROUP BY room_number, menu_probelm HAVING count(*) > 1 ";
$Recordset1 = mysql_query($query_Recordset1, $hk) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
下面是我表格中的while语句:

<table width="80%" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <th align="left" valign="top" scope="col">Record Number</th>
      <th align="left" valign="top" scope="col">Room Number</th>
      <th align="left" valign="top" scope="col">Room Number</th>
      <th align="left" valign="top" scope="col">Error Found </th>
      <th align="left" valign="top" scope="col">Delete</th>
    </tr>
<?php do { ?>
    <tr>
      <td align="left" valign="top"><a href="#"><img src="../images/error2.png" width="25" height="25" alt="<?php echo $row_Recordset1['rid']; ?>"></a></td>
      <td align="left" valign="top"><?php echo $row_Recordset1['room_number']; ?></td>
      <td align="left" valign="top"><?php echo $row_Recordset1['menu_probelm']; ?></td>
      <td align="left" valign="top"><?php echo $row_Recordset1['notes']; ?></td>
      <td align="left" valign="top"></a><a href="delete.php?rid=<?php echo $row_Recordset1['rid'];?>"><img src="../images/Remove.png" width="25" height="25" alt="Delete Record"></a></td>
    </tr>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
    <tr>
      <td colspan="2" align="left" valign="top">&nbsp;</td>
      <td colspan="3" align="left" valign="top">&nbsp;</td>
    </tr>
</table>
这是我的SQL表 |rid ai |房间号|菜单|问题|注释| 总共有5条记录。其中三个房间的135地毯有问题,他们都有不同的笔记,只给我看了第一张记录笔记,另外两张,我想不显示第一张记录,只显示第二张和第三张副本。
我试着把整个桌子放在ACSSI中,但它看起来很乱,我试了一个HTML标签,但它没有显示出来

您的SQL查询可能有问题。您正试图在查询中执行SELECT*,它要求查询表中的所有列。但是,由于您正在按进行分组,因此只能选择以下列:房间编号、菜单问题以及每组的计数

请改为尝试此查询:

SELECT room_number, menu_probelm, count(*) AS 'frequency'
FROM damage
GROUP BY room_number, menu_probelm
HAVING frequency > 1;

您无法选择GROUP BY中的所有列的原因是MySQL引擎无法知道应该为该组选择哪些其他列的值。

谢谢您的代码。我添加了它并在phpmyadmin中签入,并用print_r$row_Recordset1进行了检查;我确实看到频率计数是我想要的3。但它只显示1个记录行。您还有其他想法吗?查询中的HAVING子句将阻止显示频率为1的组。我不确定我们是否在同一页上。SQL告诉我频率应该是3。但它只显示第1条记录,应该跳过该条记录,并显示第2条和第3条记录。请编辑您的问题并尽可能包括表格-您说只有4行,结果是预期的。@tim已编辑该问题,以便在SQL选项卡中添加我所能添加的内容