我们有第三方组件,在数据库中有一个列clled选项,其中包含用户性别 - COM_COMMUNITY_MALE和COM_COMMUNITY_FEMALE。 当我们使用此代码阅读此信息时
$SQL = "SELECT * FROM #__community_fields a WHERE a.fieldcode like 'FIELD_GENDER%'";
$db->setQuery($SQL);
$rows = $db->loadObjectList();
$html = "<option value =' '>Select Gender</option>";
foreach ($rows as $data)
{
$xxx = explode("\n", $data->options);
for ($i = 0; $i < count($xxx); ++$i) {
if ($xxx[$i] == "COM_COMMUNITY_MALE")
{
print $xxx[$i];
}
}
$html = $html . "<option value ='".$arr."'>".$gender."</option>";
}
echo $html;
检查$ xxx [$ i] ==“COM_COMMUNITY_MALE”不会打印该值。 如果我们只打印$ xxx [$ i]那么我们确实会看到正确的值,但是当我们检查是否测试失败时
我们需要区分性别,以便我们可以在下拉列表中输入值
真的很感激任何帮助
由于 富
答案 0 :(得分:3)
摆脱常数周围的引号。这使得它成为一个值为&#34; COM_COMMUNITY_MALE&#34;的字符串。而不是你的常数:
if ($xxx[$i] == COM_COMMUNITY_MALE)