2013-03-31 109 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

相關問題