Php 列名称作为标题的sql关联数组
我的数据库中有一个简单的表,其中包含消息toUser和fromUser。现在有一个toUser和三个fromUser。我想使用包含所有行数据的fromUser组织我的结果,如下所示:Php 列名称作为标题的sql关联数组,php,mysql,sql,arrays,mysqli,Php,Mysql,Sql,Arrays,Mysqli,我的数据库中有一个简单的表,其中包含消息toUser和fromUser。现在有一个toUser和三个fromUser。我想使用包含所有行数据的fromUser组织我的结果,如下所示: Array( user1 => array(array( [id] => 1 [message] => some message from user 1 ), ( [id] => 1 [message] => another mess
Array(
user1 => array(array(
[id] => 1
[message] => some message from user 1
),
(
[id] => 1
[message] => another message from user 1
)),
user2 => array(array(
[id] => 2
[message] => some message from user 2
),
(
[id] => 2
[message] => another message from user 2
)),
user3 => array(array(...
我知道我的语法可能错了,但我希望你明白我的意思。我试着使用“groupbyfromname”,但这只给了我最后一条消息。对于这样的查询,正确的语法是什么
$query = mysqli_query($link, "SELECT * FROM messages WHERE toName='$to' group by fromName");
$messages = array();
while ($row = mysqli_fetch_assoc($query)) {
$messages[] = $row; //or
$messages[$row['fromName']] = $row; //didn't work either
}
print_r($messages);
编辑:刚刚找到了令人生厌的答案:
$query = mysqli_query($link, "SELECT * FROM messages WHERE toName='$to'");
$messages = array();
while ($row = mysqli_fetch_assoc($query)) {
$messages[$row['fromName']][] = $row;
}
print_r($messages);
我猜你只需要从“
$messages[$row['fromName']->[]中创建一个数组,只需简单说明一下$messages[$row['fromName']=$row;
它缺少一个]
你说得对,我只是在这里键入了它,忘了它)。不幸的是,这不是我知道的问题,我只是想我应该指出它,以防有人发布它。”作为回答“-)有些人会抓住这个机会的。”-)这家伙有没有建议如何更改我的查询以获得所需的结果?:)出于某种原因,我也对它有一个偷偷的怀疑。我正要建议你看一看,这看起来很熟悉。我可能不擅长数组,但我擅长记住模式。