-1
$bagianWhere = "";
if (isset($_POST['chkBadge']))
{
    $badge_id = $_POST['badge_id'];
    if (empty($bagianWhere))
    {
        $bagianWhere .= "t_emp.badge_id = t_balance.badge_id".
                        "and E.badge_id = '$badge_id'";
    }
}

$query = "SELECT t_emp.badge_id, t_emp.emp_name,
                 t_balance.badge_id, t_balance.balance_amount
          FROM   t_emp, t_balance 
          WHERE  ".$bagianWhere ;

$hasil = mysql_query($query);

while ($data = mysql_fetch_array($hasil))

我不知道我的 PHP 代码发生了什么。我很努力,但仍然面临这样的错误问题:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in ...

请任何人建议。

4

4 回答 4

0

我没有测试但替换您的查询

$query = "SELECT t_emp.badge_id, t_emp.emp_name,
                                    t_balance.badge_id, t_balance.balance_amount
                                    from t_emp, t_balance WHERE 
                        '".$bagianWhere."'" ;
于 2013-08-19T12:14:34.927 回答
0

进行如下更改:

1)  $bagianWhere .= " where t_emp.badge_id = t_balance.badge_id and E.badge_id = '$badge_id'";


2)  $query = "SELECT t_emp.badge_id, t_emp.emp_name,
                                        t_balance.badge_id, t_balance.balance_amount
                                        from t_emp, t_balance  
                            ".$bagianWhere ;

在您的情况下,如果条件为 false 查询变成这样:

SELECT t_emp.badge_id, t_emp.emp_name, t_balance.badge_id, t_balance.balance_amount where  from t_emp, t_balance

尝试如下:

$bagianWhere = "";
        if (isset($_POST['chkBadge']))
        {
            $badge_id = $_POST['badge_id'];
            if (empty($bagianWhere))
            {
                $bagianWhere .= " where t_emp.badge_id = t_balance.badge_id and E.badge_id = '$badge_id'";
            }
        }

        $query = "SELECT t_emp.badge_id, t_emp.emp_name,
                                    t_balance.badge_id, t_balance.balance_amount
                                    from t_emp, t_balance  
                        ".$bagianWhere ;

                        $hasil = mysql_query($query);
                        while ($data = mysql_fetch_array($hasil))
于 2013-08-19T12:14:46.287 回答
0

您的查询返回错误,因此 mysql_query 返回 FALSE。这会导致 mysql_fetch_array 失败。

很可能$badge_id是空的(您确实检查是否设置了 chkBadge,但如果设置了 badge_id 则不检查)。回显您的查询并通过 MySQL 手动运行它以验证其正确性。

于 2013-08-19T12:15:50.167 回答
0

我认为结果中没有匹配的记录,或者在替换值时查询中可能存在一些错误。所以它返回 Boolean false 这是一个布尔值。所以尝试直接在 MySQL 中执行你的查询。

于 2013-08-19T12:16:38.090 回答