$sqlAandM = "SELECT * FROM #_directoryBase_categories WHERE parent_id='1' LIMIT 6";
$getAandM = $wpdb->get_results($sqlAandM, ARRAY_A);
$listAandMMain = "";
foreach ($getAandM as $getAandMExtend){
if($getAandMExtend[is_parent] = "yes") {
$listAandMMain .= "$getAandMExtend[dir_categories]";
//echo $listAandMMain;
}
elseif($getAandMExtend[is_parent] = "no") {
$listAandMSub .= "<li>$getAandMExtend[dir_sub_categories]</li>";
}
}
MYSQL 表结构:
当前正在输出
正在输出的内容的视觉效果:
请注意,出于某种原因,一个空白列表项已添加到子类别的输出中。我限制为只有 6 个,因为我将在“广告和媒体”主类别项目下方设置它们的样式。
是否可以做一些事情来跳过额外的迭代,而无需使用单独的查询通过 mysql 直接定位它?
我没有足够的代表来张贴 body 内的图像,但它们使正在发生的事情更加清晰。
最佳答案
很确定:
if($getAandMExtend[is_parent] = "yes") {
$listAandMMain .= "$getAandMExtend[dir_categories]";
//echo $listAandMMain;
}
elseif($getAandMExtend[is_parent] = "no") {
$listAandMSub .= "<li>$getAandMExtend[dir_sub_categories]</li>";
}
应该是
if($getAandMExtend[is_parent] == "yes") {
$listAandMMain .= "$getAandMExtend[dir_categories]";
//echo $listAandMMain;
}
elseif($getAandMExtend[is_parent] == "no") {
$listAandMSub .= "<li>$getAandMExtend[dir_sub_categories]</li>";
}
因为两个等于 (==
) 是在询问 x 是否等于 y。
一个等于 (=
) 是 x 等于 y 的内容,因此不会比较两者。
所以从上面你想要 ==
因为你正在比较而不是不分配它们的值。
关于php - 第二个 if 语句的迭代太多,它列出了额外的空白项目符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27680643/