2014-08-27 19 views
0

我有一个MySQL表,多行jQuery的自动完成功能显示了两个从MySQL行一行

ID, country, city, region 

我有一个搜索使用jQuery UI的自动完成,目前自动填充城市的搜索量,像这样的工作:

if (isset($_GET['term'])){ 
    $return_arr = array(); 

    try { 
     $conn = new PDO("mysql:host=".DB_SERVER.";port=8889;dbname=".DB_NAME, DB_USER, DB_PASSWORD); 
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

     $stmt = $conn->prepare('SELECT city,country FROM location WHERE city LIKE :term LIMIT 10'); 
     $stmt->execute(array('term' => '%'.$_GET['term'].'%')); 

     while($row = $stmt->fetch()) { 
      $return_arr[] = $row['city']; 

     } 

    } catch(PDOException $e) { 
     echo 'ERROR: ' . $e->getMessage(); 
    } 



    echo json_encode($return_arr); 
} 

我想显示该国城旁,所以Los Angeles将成为Los Angeles, US

+2

真的吗?无法处理基本的字符串操作? '$ arr [] =“{$ row ['city']},{$ row ['country']}”' – 2014-08-27 16:50:41

+0

真的吗?不能回答没有讽刺?你可以使用$ return_arr [] = $ row ['city']。“,”。$ row ['country']; – mathius1 2014-08-27 16:56:25

回答

1

在PHP中可以通过使用附加的字符串“ “。例如:!

$mystring = 'part one' . 'part two'; 

echo $mystring; //-> will product: part onepart wo 

您也可以让PHP解释一个字符串,用'“(双引号)的限定

$myvar = "boat"; 
$mystring = "One day I'll buy a {$myvar}"; 

echo $mystring; //-> will produce: One day I'll buy a boat 

下面应该工作正常好运

if (isset($_GET['term'])){ 
    $return_arr = array(); 

    try { 
     $conn = new PDO("mysql:host=".DB_SERVER.";port=8889;dbname=".DB_NAME, DB_USER, DB_PASSWORD); 
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

     $stmt = $conn->prepare('SELECT city,country FROM location WHERE city LIKE :term LIMIT 10'); 
     $stmt->execute(array('term' => '%'.$_GET['term'].'%')); 

     while($row = $stmt->fetch()) { 
      $return_arr[] = $row['city'] . ', ' . $row['country']; 

     } 

    } catch(PDOException $e) { 
     echo 'ERROR: ' . $e->getMessage(); 
    } 



    echo json_encode($return_arr); 
} 

解决这个问题的另一种方法是在SQL中追加字符串

SELECT CONCAT(city, ', ', country) AS location FROM location WHERE city LIKE :term LIMIT 10 
+0

我没有意识到这是简单的,无论如何,与多个有效的选项很好的答案,我会牢记这些。谢谢 ! – user327685 2014-08-27 17:01:29

+0

我也对使用上面给出的CONCAT alernative进行投票。 – 2014-08-27 17:03:00

+0

有没有什么办法,当点击auto complete中的某些内容时,它不会将',Countrycode'添加到文本字段中? – user327685 2014-08-27 17:35:13

相关问题