2011-11-05 13 views
15

से मानों के साथ HTML ड्रॉपडाउन सूची को पॉप्युलेट करने के लिए कैसे करें मैं एक ड्रॉपडाउन सूची चाहता हूं जो मेरे डेटाबेस में सभी उपयोगकर्ता नाम सूचीबद्ध करेगा।एक HTML फॉर्म के हिस्से के रूप में डेटाबेस

मैंने सोचा था कि निम्नलिखित कोड चाल करेगा लेकिन ड्रॉपडाउन सूची खाली है - क्या कोई मुझे गलत काम करने में सहायता कर सकता है? धन्यवाद।

<tr> 
<td>Owner</td> 
<td> 
<select name="owner"> 
<?php 

$sql = mysqli_query($connection, "SELECT username FROM users"); 

while ($row = $sql->fetch_assoc()){ 

?> 
<option value="owner1"><?php echo $row['username']; ?></option> 

<?php 
// close while loop 
} 
?> 
</td> 
</tr> 

उत्तर

21

मेरा अनुमान है कि आपको कोई समस्या है क्योंकि आप लूप के बाद अपना चयन-टैग बंद नहीं करते हैं। क्या वह चाल कर सकता है?

<select name="owner"> 
<?php 
$sql = mysqli_query($connection, "SELECT username FROM users"); 
while ($row = $sql->fetch_assoc()){ 
echo "<option value=\"owner1\">" . $row['username'] . "</option>"; 
} 
?> 
</select> 
+1

कोड को थोड़ा साफ करने के लिए एक उदाहरण जोड़ा गया। –

+0

उपरोक्त को कोड में संशोधन किया है लेकिन फिर भी वही समस्या है - मैं स्टंप हूं। – Bernard

+0

@ बर्नार्ड - यह सुनिश्चित करने के लिए कि क्वेरी 'उपयोगकर्ता नाम' कॉलम को पकड़ रही है, पंक्ति की पूरी सामग्री देखने के लिए print_r ($ पंक्ति) करें। – donutdan4114

3

मैं कुछ डीबगिंग चरणों का पालन करने का सुझाव दूंगा।

सबसे पहले सीधे डीबी के खिलाफ क्वेरी चलाएं। पुष्टि करें कि यह परिणाम वापस ला रहा है। यहां तक ​​कि कुछ भी सरल के साथ आप पाते हैं कि आपने गलती की है, या तालिका खाली है, या कुछ अजीबता है।

यदि उपरोक्त ठीक है, तो mysql_query में वापस क्या प्राप्त कर रहा है यह देखने के लिए सीधे $ HTML की सामग्री को लूपिंग और गूंजने का प्रयास करें - देखें कि यह सीधे डीबी में जो मिला है उससे मेल खाता है या नहीं।

यदि आपका डेटा पृष्ठ पर आउटपुट है, तो देखें कि आपके HTML प्रारूपण में क्या गलत हो रहा है।

हालांकि, अगर $ पंक्ति से कुछ भी आउटपुट नहीं है, तो पता लगाएं कि mysql_query क्यों काम नहीं कर रहा है उदा। [एक पकड़ लिया इन पंक्तियों पर कुछ अक्सर हो सकता है], वेबसर्वर डीबी आदि से जुड़ सकते हैं उपयोगकर्ता, कि डीबी क्वेरी करने की अनुमति आप एक खुला डीबी कनेक्शन है क्या करता है

$sql = mysql_query("SELECT username FROM users") or die(mysql_error()); 
थोड़ा आपकी क्वेरी बदलने

किसी भी त्रुटि को उजागर करने में मदद कर सकते हैं: http://php.net/manual/en/function.mysql-error.php

+0

धन्यवाद क्रिस ने मुझे त्रुटि आउटपुट – Bernard

8

कोड नीचे अच्छा है .. यह link

<?php 

$conn = new mysqli('localhost', 'username', 'password', 'database') 
or die ('Cannot connect to db'); 

    $result = $conn->query("select id, name from table"); 

    echo "<html>"; 
    echo "<body>"; 
    echo "<select name='id'>"; 

    while ($row = $result->fetch_assoc()) { 

        unset($id, $name); 
        $id = $row['id']; 
        $name = $row['name']; 
        echo '<option value="'.$id.'">'.$name.'</option>'; 

} 

    echo "</select>"; 
    echo "</body>"; 
    echo "</html>"; 
?> 
पर किसी और को नामित aaronbd द्वारा दिया गया था
+0

खोजने में मदद की है क्या आप मुझे बता सकते हैं कि ">" विकल्प में क्यों उपयोग किया जाता है? और यह कैसे काम करता है –

+3

@SmitSaraiya ">" मानक एचटीएमएल सिंटैक्स के रूप में विकल्प में प्रयोग किया जाता है। – Imon

2
<select name="owner"> 
<?php 
$sql = mysql_query("SELECT username FROM users"); 
while ($row = mysql_fetch_array($sql)){ 
echo "<option value=\"owner1\">" . $row['username'] . "</option>"; 
} 
?> 
</select> 
+0

यदि आप कुछ कर रहे हैं जो आप कर रहे हैं, या आपके और उपयोगकर्ता के समाधान के बीच क्या अंतर है, तो यह कुछ नुकसान नहीं पहुंचाएगा। – nKn

1
<?php 
$query = "select username from users"; 
$res = mysqli_query($connection, $query); 
?> 


<form> 
    <select> 
    <?php 
     while ($row = $res->fetch_assoc()) 
     { 
     echo '<option value=" '.$row['id'].' "> '.$row['name'].' </option>'; 
     } 
    ?> 
    </select> 
</form> 
संबंधित मुद्दे