【发布时间】:2014-02-13 23:13:57
【问题描述】:
我正在尝试使用下一个代码(这是相关的部分)获取交叉表计数,这不起作用
<?php
foreach($row as &$val_row)
{
foreach($col as &$val_col)
{
$count=mysql_num_rows(mysql_query("SELECT whatever FROM data WHERE
$field_row='$val_row' AND $field_col='$val_col'"));
echo $count;
}
}
?>
我刚刚开始使用数组,我想知道为什么这不起作用。我只得到 $count 一次,其他结果是 0...
在这种情况下,我有两种类型的答案的交叉表。性别(男、女)、问题(是、否) 我的想法是使用 foreach 运行两个数组并构建一个表,让每个字段查询行和列的数组的当前值。它根本行不通。我认为我正在做某事递归或变量寿命错误..我真的很困惑..
【问题讨论】:
-
请注意 $count 在循环的每次迭代中都会发生变化。您是否使用 MySQL 数据库工具来验证您的代码是否获得与手动编写的 SQL 查询相同的结果?
-
你能添加预期的结果吗?请在代码运行时优化代码,函数中的函数还可以,但不太容易阅读/调试
-
是的,当我手动运行查询时,我得到了正常的结果。 $count 只获得一次价值,19(正确),而不是 3 个结果,它的 0..
-
@Stv 结果应该是 19, 21, 41, 16.. 而我得到 19, 0, 0,0.. 我也不知道如何为此优化代码。我试图用 for 循环替换 foreach 但我得到了相同的结果..