2017-08-14 3 views
-1

Ich habe gerade einen Code des Datennamens des Stadtnamens geschrieben, der die Stadt von der gegebenen Zustandsidentifikation findet. Aber bei der Auswahl des Stadtnamens wird auch die Status-ID angezeigt, und nach der Auswahl wird nur die Status-ID angezeigt, anstatt den Städtenamen anzuzeigen. Hier ist der Code.Wie wird der Name der Stadt als Wert anstelle von ID zurückgegeben?

<?php 
    echo '<input type="text" list="city" class="form-control" /> 
       <datalist id="city" >'; 
    $con = mysql_connect("localhost","root",""); 
    $db = mysql_select_db("placedb",$con); 

    $query = mysql_query("SELECT * FROM `cities` WHERE state_id BETWEEN 1 AND 41 ORDER BY name ASC ") or die(mysql_error()); 

    $items = array(); 
    while ($row = mysql_fetch_array($query)) { 
     $items[] = $row; 
    } 

    foreach($items as $item){ 

     printf('<option id="city" value="%s">%s</option>', $item['id'], $item['name']); 
    } 
    echo '</datalist>'; 

    ?> 
+0

Entfernen '$ item sein sollte [ 'id']' Ich denke,? Wenn du das gerade geschrieben hast, würdest du das wissen. Es sei denn, ich verpasse etwas? – Script47

+0

** Verwenden Sie ** nicht ** veraltete und unsichere ** _mysql _ * - Funktionen. Sie sind seit PHP 5.5 (im Jahr 2013) veraltet und wurden in PHP 7 (im Jahr 2015) vollständig entfernt. Verwenden Sie stattdessen MySQLi oder PDO. 2. Sie sind ** weit offen für ** [SQL Injections] (http://php.net/manual/en/security.database.sql-injection.php) und sollten wirklich [vorbereitete Anweisungen] verwenden (http://php.net/manual/de/mysqli.quickstart.prepared-statements.php) anstelle der Verkettung Ihrer Abfragen, die verwendet werden können, wenn Sie die oben genannten MySQLi oder PDO verwenden. –

+0

Scheint wie eine Kopie einfügen. – Sand

Antwort

0

Sie $item['name'] statt $item['id']

0

verwenden Ich denke, die printf

printf('<option id="city" value="%d">%s</option>', $item['id'], $item['name']); 
Verwandte Themen