2016-05-21 17 views
-2

Ich versuche, Daten aus einer MySQL-Datenbank in eine HTML-Combobox zu übergeben, und ich bin mit PHP zu tun, dassPHP MySQLi zu HTML Combobox

<form method="POST"> 
    <select class="js_inline_input"> 
      <?php 
       $servername = "localhost"; 
       $username = "root"; 
       $password = ""; 
       $db = "js_milhoes"; 

       $conn = new mysqli($servername, $username, $password, $db); 

       if ($conn->connect_error) { 
        die("Connection failed: " . $conn->connect_error); 
       }else{ 
        echo "<option> Connected successfully </option>"; 
       } 

       $sql = "SELECT * FROM js_country"; 
       $result = $conn->query($sql); 

       while($row=mysqli_fetch_assoc($result)){ 
       //My Personal echo  
       echo "<option value='".$row['countryCode']."'>".$row['countryName']."</option>"; 
       //Echo i saw on this site 
       echo "<option value='{$row->countryCode}'>{$row->countryName}</option>"; 
       } 

       $conn->close(); 

      ?> 
     </select> 
    </form> 

Es sollten alle Länder in der Combobox Liste, aber was Anzeigen ist: - Vom ersten Echo: ". $ row ['countryName']." - Vom zweiten Echo: {$ row-> country}

ich die Verbindung bereits prüfen, und bevor ich eine hinzufügen, wenn das sagt, dass die Abfrage

Antwort

1

Der Grund, warum Ihre zweiten <option> nicht nicht leer ist Zeigen ist, weil Sie eine "Fetch Objekt" -Syntax $row->column verwenden.

Sie benötigen eine oder das andere zu verwenden; nicht beide.

Entweder Sie verwenden

while($row=mysqli_fetch_assoc($result)){ 

    echo "<option value='".$row['countryCode']."'>".$row['countryName']."</option>"; 

} 

oder (und Flucht mit doppelten Anführungszeichen):

while($row=mysqli_fetch_object($result)){ 

    echo "<option value=\"{$row->countryCode}\">{$row->countryCode}</option>"; 

} 

Sie müssen auch die Spaltennamen Groß- und Kleinschreibung beachten, wenn sie über jene Iterieren so wie das.

Das bedeutet, dass countryCode und countrycode zwei verschiedene Tiere sind, wie auch countryName und countryname; sollte es der Fall sein.

  • Überprüfen Sie auf Fehler in Ihrer Abfrage.

Fußnoten:

Sie Zustand: "aber was anzeigt, ist: - Vom ersten Echo:" $ row [ 'country'] „- Vom zweiten Echo:.. {$ row-> countryCode} "

Ich verstehe nicht, was Sie damit meinen. Ich habe Ihren Code getestet und es funktioniert gut (neben dem "Fetch-Objekt" -Syntax-Problem). Wenn Sie damit "Code" sehen und nicht geparst werden, verwenden Sie entweder keinen Webserver, oder Sie greifen auf ihn als file:///file.php statt http://localhost/file.php oder als .html zu, sollte dies als Dateierweiterung der Fall sein ist unbekannt.

  • Das ist meine Schlussfolgerung für diese Frage.
+0

ich inspiziert meinen code und teil von Der PHP ist kommentiert und ich weiß nicht warum – JSoares

+0

@JSoares Ok so wo sind wir mit der Frage? Was ich in Bezug auf das gepostet habe, was Sie für den Code gepostet haben, sollte es gelöst haben. Ich posten keine Antworten, die nicht funktionieren, die ich vor dem Posten getestet habe. –

0

Ok, das war ein dummes Problem, als ich von Wamp 2 wechselte.5 zu wamp 3 ich vergesse, die wwamp paste zu löschen und ich hatte 2, also habe ich die falsche füllung und weil das war nicht in einem server mit apache der browser Kommentare der php