2011-09-20 103 views
0

我有一个高于这个集团与PHP没有MySQL查询

id | type 
--- ----- 
1 | fh 
--- ----- 
2 | fhs 
--- ----- 
3 | so  
--- ----- 
4 | sos 


while($row = mysql_fetch_array($res)){ 
    if($row['type'] == "fh" OR $row['type'] == "fhs"){ 
     $name = "Flush Head Studs"; 
    }else if($row['type'] == "so" OR $row['type'] == "sos"){ 
     $name = "Through Standoffs"; 
    } 
    $category .= '<option value="'.$row['type'].'" name="'.$row['type'].'">' . $name . '</option>'; 
} 

码表两次displayng名。我该怎么做,名单只有一次在名单上。

+0

@JamWaffles这是一种回答,奇怪的原因downvote某人提供了一个答案... – feeela

+0

@JamWaffles:这是一个QA网站,提出问题。我看不出downvote是合理的吗? OP正在寻求帮助,而不是一些蹩脚的咆哮 – knittl

+0

+1:我只是因为JamWaffles不适当的行为而提出了这个问题。 –

回答

1

你的结果是正确的!如果你改变你这样的代码,你可以看到为什么...

while($row = mysql_fetch_array($res)){ 
    if($row['type'] == "fh" OR $row['type'] == "fhs"){ 
     $name = "Flush Head Studs ".$row['type']; 
    }else if($row['type'] == "so" OR $row['type'] == "sos"){ 
     $name = "Through Standoffs ".$row['type']; 
    } 
    $category .= '<option value="'.$row['type'].'" name="'.$row['type'].'">' . $name . '</option>'; 
} 

,如果你想选择所有类型,我建议你的描述或名称栏添加到您的表...因为你忧色所有的您的类型作为选择字段中的值。

+0

是的,我知道,但它不是我需要的:D – Omerimuni

+0

你能解释为什么你需要这个吗?将有助于找到解决方案:-) – Daniel

+0

我有所有项目在分贝。客户有麻烦从大分贝中找到物品。为此,我制作小型发电机。在第一个选择框中,您可以选择冲洗头螺栓或穿过支架。之后,脚本生成第二个选择框,你可以选择材料。示例FH是镀锌钢冲洗头螺栓和FHS是不锈钢冲洗头螺栓。我这样做是因为我认为这对客户更容易。 Sry为我的糟糕的工程师,我希望你明白什么,为什么我需要这样的=) – Omerimuni

0

在您所显示的代码,你有4个diferent value atributes(从$行[“型”]来)2 diferent(和重复)option内容对用户可见的(从$名称来)

所以,你必须选择这个方式之一:
1-放弃两个value atributes(最简单的方法是删除ORsOR本身的一侧)的(这也许就是你所要求的)
2 - 使用另外$ row ['type']在option内容上做出明显区别(但是这会给出4个选项不是2)

$category .= '<option value="'.$row['type'].'" name="'.$row['type'].'">' .$row['type'].' - '. $name . '</option>'; 

3-给我们更多的背景来解决问题。