遍历数据库结果
Iterating through database results
我正在从我的查询中返回数据。循环遍历结果并将数据推送到不同的数组中。
当我尝试遍历数组时,我只得到第一组数据,没有别的。
my @data = ();
for my $row (@$query_data) {
if($row->[11] == 2)
{
push(@data,$row)
}
}
在 perl 脚本上,以下工作正常,我得到了预期的输出。
for my $row (@xm_data) {
print "$row->[6]\n";
}
输出
mike
steve
当我在 mojolicious 中或多或少地做同样的事情时,我得到了不同的结果。我传递给渲染外观 xm_data => @xm_data
并且只得到第一个结果。
模板循环如下。
% for my $request_data (@{$xm_data}) {
<%= $request_data %>
% }
如果我尝试与 .pl
文件中相同的语法,我会收到错误消息。
我对 mojolicious 一无所知,但我知道一些 perl。
我觉得你的 xm_data => @xm_data
很可疑。如果在 perl 中将一个数组分配给一个标量,它只需要该数组的第一个元素。要将指针分配给数组(看起来您正在尝试这样做),您需要使用反斜杠。
例如。 xm_data => \@xm_data
.
这会给你一个数组的引用,然后你可以稍后在你的 foreach
循环中取消引用,就像你已经在做的那样。
有帮助吗?
我正在从我的查询中返回数据。循环遍历结果并将数据推送到不同的数组中。 当我尝试遍历数组时,我只得到第一组数据,没有别的。
my @data = ();
for my $row (@$query_data) {
if($row->[11] == 2)
{
push(@data,$row)
}
}
在 perl 脚本上,以下工作正常,我得到了预期的输出。
for my $row (@xm_data) {
print "$row->[6]\n";
}
输出
mike
steve
当我在 mojolicious 中或多或少地做同样的事情时,我得到了不同的结果。我传递给渲染外观 xm_data => @xm_data
并且只得到第一个结果。
模板循环如下。
% for my $request_data (@{$xm_data}) {
<%= $request_data %>
% }
如果我尝试与 .pl
文件中相同的语法,我会收到错误消息。
我对 mojolicious 一无所知,但我知道一些 perl。
我觉得你的 xm_data => @xm_data
很可疑。如果在 perl 中将一个数组分配给一个标量,它只需要该数组的第一个元素。要将指针分配给数组(看起来您正在尝试这样做),您需要使用反斜杠。
例如。 xm_data => \@xm_data
.
这会给你一个数组的引用,然后你可以稍后在你的 foreach
循环中取消引用,就像你已经在做的那样。
有帮助吗?