2013-03-31 60 views
3

我试图用PHP填充select字段。问题是我无法弄清楚如何显示它们,因为我得到的数据库中的值匹配显示两次,因为我将它作为选定的回显,然后循环显示所有结果。我怎样才能显示selected一个匹配的字段值,然后是所有不匹配所选的一个?填充从数据库中选择字段

表格类别

cat_id cat_name 
1  soccer 
2  baseball 
3  basketball 

表项目

art_id art_cat_id 
1  1 

PHP/HTML

<select name="category"> 
<?php 
    $sql = "SELECT cat_id cat_name, art_id, art_cat_id 
      FROM categories LEFT JOIN articles 
      ON categories.cat_id = articles.art_cat_id 
      WHERE art_id = 1"; 
    $result = query($sql); 

    if($result===false) { 
     echo("Query Fail"); 
    } 
    else { 
     ?> 
     <option value="<?php echo $data['art_cat_id'] ?>" selected="selected"><?php echo $data['cat_name'] ?></option> 
     <?php 
     while($data = mysqli_fetch_array($result)) { 

     ?>  
     <option value="<?php echo $data['cat_id'] ?>"><?php echo $data['cat_name'] ?></option> 
     <?php 
     } 
    } 
    ?> 
</select> 

什么它返回

<select name="category"> 
    <option value="1" selected="selected">soccer</option> 
    <option value="1">soccer</option> 
    <option value="2">baseball</option> 
    <option value="3">basketball</option> 
</select> 

我在找什么

<select name="category"> 
    <option value="1" selected="selected">soccer</option> 
    <option value="2">baseball</option> 
    <option value="3">basketball</option> 
</select> 
+0

+1组织你的问题非常好:) – 2013-03-31 19:19:52

+0

我可以看到你打印的第一选择,而循环开始前,而是如何打印的第一个数据?因为它还不可用 – 2013-03-31 19:23:28

+0

谢谢:),并对不起,我有一个sql语句之前,其中填充其他领域,我只是得到'art_cat_id'和'cat_name'与该语句,然后循环休息。我希望这是有道理的。'art_cat_id'和第一个'cat_name'实际上是使用'$ row ['art_cat_id']'和'$ row ['cat_name']'然后我做第二个sql,我使用' $ data ['cat_id']' – user2201765

回答

3

跳过该行是否值相匹配的第一个。

一个片段:

?> 
    <option value="<?php echo $data['art_cat_id'] ?>" selected="selected"><?php echo $data['cat_name'] ?></option> 
    <?php 
    while($data = mysqli_fetch_array($result)) { 
     if ($data['art_cat_id'] == $data['cat_id']) continue; 
    ?>  
    <option value="<?php echo $data['cat_id'] ?>"><?php echo $data['cat_name'] ?></option> 
    <?php 
    } 
+0

非常感谢!我很感激你的时间! – user2201765

相关问题