我有一些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;
}
?>
答案 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}%'");`