PHP数组中的多行到一个项目

时间:2017-05-02 12:00:14

标签: php arrays row

我有一些PHP从数据库表中检索数据并根据查询填充数组。

我想将两个字段合并在一起,它们是'组织'和完整的地址'并将其存储在' ADDRESS'下的一个项目中。如何将两行添加到一起?

我试过了地址' => $ row [' organization'] + $ row [' full_address'],但我不认为我正在查看正确的行。

    <?php

if (isset($_GET['query'])) {
    // Connect to our database
    $conn = pg_connect("host=myhost port=myport dbname=mydb user=myuser password=mypass");

    // Retrieve the query
    $query = $_GET['query'];

    // Search the database for all similar items
    $sql = pg_query($conn, "SELECT * FROM addresses.llpg_basic WHERE (lpi_logical_status_desc = 'Approved / Preferred LPI' OR lpi_logical_status_desc = 'Provisional LPI') AND full_address ILIKE '%{$query}%'");
    $array = array();

    while ($row = pg_fetch_array($sql)) {
        $address = array(
        'ADDRESS' => $row['full_address'],
        'POSTCODE' => $row['postcode'],
        'UPRN' => $row['uprn'],
        'USRN' => $row['usrn'],
        'X' => $row['xref'],
        'Y' => $row['yref']
        );
        array_push($array, $address);
    }

    sort($array);

    $jsonstring = json_encode($array);

    // Return the json array
    echo $jsonstring;
}

?>

3 个答案:

答案 0 :(得分:2)

您可以concatenate列:

$sql = pg_query($conn, "SELECT *, full_address || ',' || organisation AS concatenated_string FROM addresses.llpg_basic  WHERE (lpi_logical_status_desc = 'Approved / Preferred LPI' OR lpi_logical_status_desc = 'Provisional LPI') AND full_address ILIKE '%{$query}%");

或使用concat函数:

$sql = pg_query($conn, "SELECT *, concat(full_address,' ', organisation) AS concatenated_string FROM addresses.llpg_basic  WHERE (lpi_logical_status_desc = 'Approved / Preferred LPI' OR lpi_logical_status_desc = 'Provisional LPI') AND full_address ILIKE '%{$query}%");

之后,您可以访问您的连接字符串:

'ADDRESS' => $row['concatenated_string'],

要么,如果你需要php中的concatenate个字符串,你需要使用periods而不是加号

'ADDRESS' => $row['organisation'] . $row['full_address'],

答案 1 :(得分:0)

这个怎么样?

<textarea rows="3"></textarea>

答案 2 :(得分:0)

尝试修改您的查询:

`$sql = pg_query($conn, "SELECT *, concat(organisation,", ",full_address) myfull_address FROM addresses.llpg_basic WHERE (lpi_logical_status_desc = 'Approved / Preferred LPI' OR lpi_logical_status_desc = 'Provisional LPI') AND full_address ILIKE '%{$query}%'");`