2012-07-21 28 views
1

我遇到了一個陣列問題。出於某種原因,每當我測試它,我得到這個錯誤:使用陣列選擇獲取MySQL錯誤

  • Unknown column 'ext_token' in 'where clause'如果我有或死在MySQL錯誤,
  • 或我得到Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given,如果我把它拿出來。

我不確定它是否與數組中的第一個columnName是ext_token的事實有關,但我認爲我會擺脫那如果下面。

下面是數組的代碼:

$mat_total = array(); 

foreach ($result_array1 as $columnName => $columnData){ 

    if($columnName != "ext_token" || "ext_token_child"){ 
      var_dump($columnName); 
      $mat_sql = mysql_query("SELECT * FROM materials WHERE mat_token = $columnName"); 
      $mat_array = mysql_fetch_assoc($mat_sql); 
      $material_tok = $mat_array['mat_token']; 
      $material_price_unit = $mat_array['material_price_per_unit']; 


      $total_mat_price = $material_price_unit * $columnData; 

      array_push($mat_total, "$material_tok => $total_mat_price"); 

    } 
    else{ 
     echo "hello";  
    } 

} 

感謝任何及所有的幫助。

編輯:在陣列而言這裏是一個清晰的版本,它

Column name: ext_token Column data: roof 
Column name: ext_token_child Column data: felt 
Column name: concrete Column data: 4 
Column name: cement Column data: 3 
Column name: sand Column data: 2 
Column name: wood_4_2 Column data: 4 
Column name: wood_8_2 Column data: 2 
Column name: felt Column data: 2 

或存在這樣的:

array(8) { ["ext_token"]=> string(4) "roof" ["ext_token_child"]=> string(4) "felt" ["concrete"]=> string(1) "4" ["cement"]=> string(1) "3" ["sand"]=> string(1) "2" ["wood_4_2"]=> string(1) "4" ["wood_8_2"]=> string(1) "2" ["felt"]=> string(1) "2" } 
+0

你能後的實際陣列? – Peon 2012-07-21 22:23:52

回答

1

你忘了爲封裝與單引號的價值。它應該像

WHERE mat_token = '$ COLUMNNAME'」

4

這種表達似乎是錯誤的:

$columnName != "ext_token" || "ext_token_child" 

我認爲你的意思是

$columnName != "ext_token" && $columnName != "ext_token_child" 
0

if($columnName != "ext_token" || "ext_token_child"){

應該是if($columnName != "ext_token" && $columnName != "ext_token_child"){

或者使用==,無論你正在拍攝。

0

試試這個:

$mat_total = array(); 

foreach ($result_array1 as $columnName => $columnData) { 

    if($columnName != "ext_token" || $columnName == "ext_token_child") { 

    var_dump($columnName); 
    $mat_sql = mysql_query("SELECT * FROM materials WHERE mat_token = '$columnName'"); 

    $mat_array = mysql_fetch_assoc($mat_sql); 
    $material_tok = $mat_array[ 'mat_token' ]; 
    $material_price_unit = $mat_array[ 'material_price_per_unit' ]; 

    $total_mat_price = $material_price_unit * $columnData; 

    array_push($mat_total, "$material_tok => $total_mat_price"); 

    } else { 
    echo "hello"; 
    } 

} 
+0

變化'$ COLUMNNAME = 「ext_token_child」''到$ COLUMNNAME == 「ext_token_child」' – Rhys 2012-07-21 22:32:51

+0

感謝名單,快寫作 :) – Peon 2012-07-21 22:34:21