我的一个阵列出了问题。出于某种原因,每当我测试它时,我都会收到此错误:
Unknown column 'ext_token' in 'where clause'
如果我有错误的mysql错误,Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given
,如果我拿出来的话。我不确定它是否与数组中第一个columnName为ext_token的事实有关,但我认为我会通过if if去除它。
以下是数组的代码:
$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 :(得分:4)
这个表达似乎错了:
$columnName != "ext_token" || "ext_token_child"
我认为你的意思是
$columnName != "ext_token" && $columnName != "ext_token_child"
答案 1 :(得分:1)
您忘记用单引号括起该值。它应该像
WHERE mat_token ='$ columnName'“
答案 2 :(得分:0)
if($columnName != "ext_token" || "ext_token_child"){
应为if($columnName != "ext_token" && $columnName != "ext_token_child"){
或者使用==
,无论你拍摄哪个。
答案 3 :(得分: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";
}
}