【问题标题】:PHP/MySQL arrays/numrows crosstabulationPHP/MySQL 数组/numrows 交叉表
【发布时间】: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 但我得到了相同的结果..

标签: php mysql arrays


【解决方案1】:

问题出在mysql表数据中。我从一些糟糕的 .csv 文件中导入了数据 一旦我在表格中获得正确的数据,一切都开始按应有的方式工作...... 请删除此问题,因为它没有任何逻辑用途...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 2012-02-17
    • 2017-03-06
    • 1970-01-01
    • 2013-07-25
    • 2020-04-12
    • 2010-10-17
    相关资源
    最近更新 更多