【发布时间】:2018-11-03 09:01:14
【问题描述】:
此查询在 phpMyAdmin 中产生预期的 4 行(见下图):
SELECT * FROM messages WHERE send_from = 65 OR send_to = 65 GROUP BY `property_id`
如果我在我的 php 网站中循环遍历结果,我只会从 phpMyAdmin 获得结果表的最后一行作为输出。
$property_id_text = "property_id";
$list_messages = $mysqli->prepare("SELECT message_text FROM messages WHERE send_from = ? OR send_to = ? GROUP BY ?");
$list_messages->bind_param("sss", $user_id, $user_id, $property_id_text);
$list_messages->execute();
$list_result = $list_messages->get_result();
if ($list_result):
if(mysqli_num_rows($list_result)>0):
while($list_message = $list_result->fetch_assoc()):
$nachrichten_liste = $nachrichten_liste . '<div>' . $list_message['message_text'] . '</div>';
endwhile;
endif;
endif;
知道为什么$nachrichten_liste 不包含表格中的所有行吗?我希望上图中的所有消息都包含在$nachrichten_liste
更新
如果我将 GROUP BY 运算符“property_id”直接放在准备好的语句中,它就可以工作
$list_messages = $mysqli->prepare("SELECT message_text FROM messages WHERE send_from = ? OR send_to = ? GROUP BY property_id");
【问题讨论】:
-
我不认为这是一个覆盖问题,因为我有这样的变量分配: $nachrichten_liste = $nachrichten_liste 。 '' ......@Smartpal 结果:文本 4
标签: php mysqli while-loop group-by