2013-06-05 32 views
1

我寫了一個程序,通過MySQL使用函數來檢索數據,現在我有一個問題,我如何在選擇框中使用它?使用函數通過mysql檢索數據並在選擇框中使用?

代碼,這是下面給出,

function selectdata(){ 
$select="SELECT * FROM table_name"; 

$run=mysql_query($select); 

while($fetch=mysql_fetch_array($run)){ 
$field_name.=$fetch['field_name']; 


} 
return $field_name; 
} 

HTML:

<select name="office_name"> 

<option value=""><?php echo selectdata(); ?></option> 

</select> 

它顯示在一個領域

任何幫助,所有的數據?

+0

什麼是你期待發生什麼?你是否想爲表中的每一行添加一個新的'

+0

不要使用'mysql_'擴展名,否則不要使用'PDO'或'msqli_'。 – 6339

回答

2

做這樣

function selectdata(){ 
    $select="SELECT * FROM table_name"; 

    $run=mysql_query($select); 
    $field_name = ''; 
    while($fetch=mysql_fetch_array($run)){ 
     $field_name.="<option value=''>" . $fetch['field_name'] . "</option>"; 
    } 
    return $field_name; 
} 

,而在HTML

<select name="office_name"> 
<?php echo selectdata(); ?> 
</select> 
+1

感謝它現在正在工作! – Mehar

2

那是因爲你是呼應的串入一個選項值。更好的辦法是一個arrayselectdata(),然後遍歷它在你的HTML一樣返回:

function selectdata(){ 
    $select="SELECT * FROM table_name"; 

    $run=mysql_query($select); 
    $fields = array() 
    while($fetch=mysql_fetch_array($run)){ 
     $fields[] = $fetch['field_name']; 
    } 
    return $fields; 
} 

然後

<select name="office_name"> 
    <?php foreach(selectdata() as $option): ?> 
    <option value="<?php echo $option; ?>"><?php echo $option; ?></option> 
    <?php endforeach; ?> 
</select> 

這樣,你就保留HTML出你的PHP。

+0

爲什麼你想要做一個循環兩次?如果你已經通過所有的行,爲什麼不使用它。 –

+1

它允許您在別處重用'selectdata'函數,因爲它不包含HTML。示例:用戶提交表單數據後,您想驗證它是允許的選項之一。然後你可以做'in_array($ _ POST ['office_name'],selectdata())''。這都是關於可重用性,並保持HTML遠離你的PHP。 – Prisoner

0
<?php 
$query = mysql_query("YOUR QUERY HERE"); // Run your query 

echo '<select name="DROP DOWN NAME">'; // Open your drop down box 

// Loop through the query results, outputing the options one by one 
while ($row = mysql_fetch_array($query)) { 
    echo '<option value="'.$row['something'].'">'.$row['something'].'</option>'; 
} 

echo '</select>';// Close your drop down box 





?> 
2

試試這個..不確定語法是否正確。

function selectdata(){ 
$select="SELECT * FROM table_name"; 

$run=mysql_query($select); 

while($fetch=mysql_fetch_array($run)){ 
$field_name.= "<option value=>" .$fetch['field_name']."</option>"; 
} 
return $field_name; 
} 

HTML:

<select name="office_name"> 
<?php echo selectdata(); ?> 
</select> 
+1

您錯過了「value」屬性以及其內容的括號。 – ferdynator

0

您可以按以下示例使用,

<?php 
$sql = "SELECT * FROM terms"; 
$result = mysql_query($sql) or die(mysql_error()); 

while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) { 
    $term[$row{'term_id'}] = $row{'term_name'}; 
} 
?> 
    <select id="mass_term" name="mass_term" style="width:125px;" > 
    <?php foreach($term as $key=>$value){ ?> 
     <option <?php echo ($key==$termid)?'selected="selected"':'' ?> value="<?php echo $key; ?>"><?php echo $value; ?></option> 
    <?php } ?> 
    </select> 
相關問題