$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 ...
请任何人建议。
我不是在测试,而是替换您的查询
$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."'" ;
您的查询返回错误,因此mysql_query返回 FALSE。这会导致mysql_fetch_array失败。
最有可能$badge_id
为空(您确实检查是否设置了 chkBadge,但如果设置了badge_id则不检查(。回显您的查询并通过 MySQL 手动运行它以验证其正确性。
我认为结果中没有匹配的记录,或者替换值时您的查询中可能存在一些错误。因此,它返回布尔值 false,这是一个布尔值。因此,请尝试直接在MySQL中执行查询。
按如下方式进行更改:
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))