2013-03-22 64 views
1

我試圖返回所有行作爲一個選擇框選項,但它是隻返回第一行返回而循環中的所有行的下拉選擇框中選擇

while($parent_cat = mysql_fetch_array($result)) 

{ 
    return '<option value="'.$parent_cat['categoryid'].'">'.$parent_cat['title'].'</option>'; 
} 

我怎樣才能返回所有的行?

+2

[**請不要在新代碼**中使用'mysql_ *'函數](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。 – Kermit 2013-03-22 19:39:15

+0

感謝它,但最終mysql函數將取代CMS自己的功能,所以我會在那種情況下沒事的吧? – 2013-03-22 19:43:03

回答

2

您可以通過傳遞一些屬性作爲參數並根據需要構建動態下拉菜單來擴展以下功能。

function showDropDown() { 

    $html = '<select>'; 

    $i = 0; 
    while (your loop condition) { 
     $html .= '<option value="">Hello World</option>'; 
     $i++; 
    } 

    $html .= '</select>'; 

    //in case your loop fails return empty instead of drop down without options. 
    return $i > 0 ? $html : ''; 

} 

echo showDropDown(); 

我上述功能使用的方法是:

function buildDropDown(array $array, $attributes = array()) { 
     if (! empty($array)) { 
     $html = '<select '; 
     foreach($attributes as $attr => $val) { 
      $html .= $attr . '="' . $val . '" '; 
     } 

     foreach($array as $key => $value) { 
      $html .= '<option value="'.$key.'">'.$value.'</option>'; 
     } 

     $html .= '</select>'; 

     return $html; 
     } 
     return ''; 
    } 

    $testArr = array(1 => 'A', 2 => 'B', 3 => 'C'); 
    $attrs = array(
      'id' => 'hello', 
      'name' => 'hello', 
      'style' => 'background-color: blue' 
      ) 
    echo buildDropDown($testArr, $attrs); 

上述生成:

<select id="hello" name="hello" style="background-color:blue"> 
    <option value="1">A</option> 
    <option value="2">B</option> 
    <option value="3">C</option> 
</select> 
+0

它只返回最後一行。我有這個函數,我必須調用這個函數到另一個代碼,它只允許傳遞返回值而不是回聲。回聲渲染出空間 – 2013-03-22 19:48:12

+0

等待我認爲它會工作..只需給我幾分鐘的時間來測試 – 2013-03-22 19:49:59

0

我設法這種方式拉這一關。

 function openDB() 
     { 
      global $conn, $username,$host,$password,$db; 
      $host = "localhost"; 
      $username ="username"; 
      $password= "password"; 
      $db = "databasename"; 

      $conn = mysql_connect($host, $username,$password) or die(mysql_error()); 
          mysql_select_db($db,$conn) or die(mysql_error()); 
     } 
function closeDB() 
{ 
    global $conn; 
    mysql_close($conn); 
} 
     openDB(); 
     $query3 = "select * from table_name"; 

     $result2 = mysql_query($query3,$conn) 
       or die ("Error in query: $query.". mysql_error()); 

       // if a result 
     if(mysql_num_rows($result) > 0) 
     { 
      //turn it into an object 
      $row = mysql_fetch_object($result); 
     if(mysql_num_rows($result2) > 0) 
     { 
      //turn it into an object 
        $row2 = mysql_fetch_object($result2); 
     ?> 

        <? 
        //creates a options box for the list of items in the dropdownmenu 
        echo"<select>"; 
        while($row2=mysql_fetch_array($result2)) 
        { 
         echo "<option>".$row2['feild_title']."</option>"; 
        } 
        echo"</select>"; 
     closeDB(); 
     ?>