2013-08-19 3 views
-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-кодом. Я изо всех сил старался, но по-прежнему сталкивается с проблемой с ошибкой, как это: советыPHP Mysql с массивом выборки

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

Любой пожалуйста.

+1

эхо запроса и проверить – overflow

+1

FYI: mysql_fetch_array() является устаревшим, попробуйте использовать mysqli_fetch_array() –

+4

Это основная отладка 101. Эхо вашего запрос, проверьте журналы ошибок, используйте 'или умереть()' при вызове ' mysql_query() '. ** Сделайте некоторые работы самостоятельно ** – Bojangles

ответ

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."'" ; 
0

изменения Make, как показано ниже:

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 ; 

В вашем случае, если условие ложно запроса стать чем-то вроде этого:

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)) 
0

Ваш запрос возвращает ошибку, поэтому mysql_query возвращает FALSE. Это приводит к сбою mysql_fetch_array.

Скорее всего $badge_id пуст (вы проверяете, установлен ли chkBadge, но нет, если установлен badge_id). Повторите свой запрос и запустите его через MySQL вручную, чтобы проверить его правильность.

0

Я думаю, что в результатах нет соответствующих записей или может возникнуть некоторая ошибка в вашем запросе при замене значений. Так что он возвращает Boolean false, который является булевым. Поэтому попробуйте выполнить свой запрос в MySQL напрямую.