我正在尝试将我的数组与表中的条目匹配并检索条目的ID。所以我有以下数组叫做$ features。
Array
(
[0] => Body Side Moldings: Body-Color
[1] => Door Handle Color: Black
[2] => Exhaust Tip Color: Stainless-Steel
[3] => Front Bumper Color: Chrome
[4] => Grille Color: Chrome Surround
[5] => Mirror Color: Black
[6] => Rear Bumper Color: Chrome
[7] => Steering Ratio: 16.7
)
我正在使用的foreach代码是:
foreach($features as $key => $value)
{
$results = $wpdb->get_var("SELECT term_id FROM terms WHERE name = '$value'");
echo "$results";
}
现在发生的事情是我得到了第一个能够很好地回复的ID,然后就没有了。然后我尝试回显$ value,它在数组中打印出我的所有值。我手动在'条款'表中搜索了这些条款,它们很好。
我究竟做错了什么?
答案 0 :(得分:0)
考虑使用WordPress' get_results()函数而不是get_var()。另请参阅此类似SO post。
foreach ($features as $key => $value) {
$results = $wpdb->get_results("SELECT term_id FROM terms WHERE name = '$value'");
// PRINTING RESULTS PER EACH ITEM OF ARRAY
echo $value . " RESULTS:\n";
foreach ($results as $output) {
echo $output->term_id;
}
}
答案 1 :(得分:0)
我认为你试图连接这个值。像这样:
foreach($features as $key => $value) {
$results = $wpdb->get_var("SELECT term_id FROM terms WHERE name ='".$value."'");
}
echo "$results";
答案 2 :(得分:0)
考虑使用get_results和prepare,类似于:
$placeholdersFeatures = implode(', ', array_fill(0, count($features), '%s'));
$results = $wpdb->get_results($wpdb->prepare('SELECT term_id FROM terms WHERE name IN (' . $placeholdersFeatures . ')', $features));
foreach ($results as $feature) {
echo $feature->term_id;
}
这会稍微改善你的表现。