1

アレイの1つに問題があります。何らかの理由で、テストするたびに次のエラーが発生します。

  • Unknown column 'ext_token' in 'where clause'or die 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" }
4

4 に答える 4

4

この表現は間違っているようです:

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

私はあなたが意味すると思います

$columnName != "ext_token" && $columnName != "ext_token_child"
于 2012-07-21T22:24:08.800 に答える
1

値を一重引用符で囲むのを忘れました。それは次のようになります

WHERE mat_token ='$ columnName' "

于 2012-07-21T22:51:47.133 に答える
0

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

する必要がありますif($columnName != "ext_token" && $columnName != "ext_token_child"){

または==、どちらを狙っているのかを使用します。

于 2012-07-21T22:24:48.800 に答える
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";   
  }

}
于 2012-07-21T22:29:19.100 に答える