使用多个表编码JSON响应

时间:2014-10-21 09:16:02

标签: php mysql json

我有一个android项目,我可以在editText字段中键入一个关键字,并使用php搜索MySQL数据库以检索正确的JSON响应。

现在我添加了两个带有文本字段的微调器,以便在我的数据库中进行更具体的搜索。这两个其他字段位于同一个数据库中,但位于不同的表中。 (这两个表只包含1到6的id和每个id的字符串。主表中显示的唯一值来自这两个其他表是id)

所以现在我要向php发送三个关键字(keyword,keyword2和keyword3)。如何进行适当的搜索以在浏览器中进行测试? 我在下面的尝试显示null结果。您可以看到我基本上尝试添加keyword2和keyword3以及UNION以包含两个以上的SELECT。

<?php

//error_reporting(E_ALL);
error_reporting(0);

require_once('db_config.php');

$conn = mysql_connect($db_server, $db_user, $db_password) or die(mysql_error());

$db=  mysql_select_db($db_database, $conn);

$keyword=$_GET["keyword"];
$keyword2=$_GET["keyword2"];
$keyword3=$_GET["keyword3"];

// $sql ="SELECT marca,imagempequena,marcatotal,actividade,datainicio FROM empresa WHERE marca LIKE '%$keyword%' and ficha LIKE '%1' ";

$sql = "(SELECT marca,imagempequena,marcatotal,actividade,datainicio FROM empresa WHERE marca LIKE '%$keyword%' and ficha LIKE '%1') 
           UNION
        (SELECT investimento FROM investimento WHERE investimento LIKE '%$keyword2%' ) 
           UNION
        (SELECT sector FROM sector WHERE sector LIKE '%$keyword3%' )";

header('content-type: application/json; charset=utf-8');
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');

$rs = mysql_query($sql,$conn);

$response["empresa"] = array();

while ($row=mysql_fetch_assoc($rs))

{
    $i=0;
    foreach($row as $key => $value)   
    {
        if (is_string($key))
        {
         $fields[mysql_field_name($rs,$i++)] = $value;
        }  
    }
    $json_result[] = $fields;
}
    // success
    $response["success"] = 1;

$response = json_encode($json_result);
echo($response);

?>

0 个答案:

没有答案