PHP搜索结果串联
我试图在php中找到一个方法,将mysql数据库中所有相关的搜索返回结果压缩成一个由逗号分隔的字符串。请参见下面的DB表php输出格式和php代码 海滩桌:PHP搜索结果串联,php,mysql,Php,Mysql,我试图在php中找到一个方法,将mysql数据库中所有相关的搜索返回结果压缩成一个由逗号分隔的字符串。请参见下面的DB表php输出格式和php代码 海滩桌: bname length city_name Beach A 4 City Z Beach B 3 City X Beach C 7 City E 海滩类型表: bname act_type Beach A Swimming Beach A Surfing
bname length city_name
Beach A 4 City Z
Beach B 3 City X
Beach C 7 City E
海滩类型表:
bname act_type
Beach A Swimming
Beach A Surfing
Beach B Surfing
Beach C Swimming
Beach C Fishing
Beach C Surfing
我正在寻找的输出:
`beach`.`bname` `beach_act_type`.`act_type`
Beach C Swimming, Fishing, Surfing
代替此输出格式:
`beach`.`bname` `beach_act_type`.`act_type`
Beach C Swimming
Beach C Fishing
Beach C Surfing
我的php代码:
$conn = new mysqli('localhost','test','','beachproject');
if (!$conn) {
die('DB Connection Error');
}
$search = $_POST['search'];
$search_sql="select `beach`.`bname`, `beach_act_type`.`act_type`
from `beach` inner join `beach_act_types`
on `beach`.`bname`=`beach_act_type`.`bname`
where `beach`.`bname`='$search'";
$search_query=$conn->query($search_sql);
if ($search_query->num_rows > 0) {
while($row = $search_query->fetch_assoc()) {
echo "<table border='1' cellpadding='4'>
<tr>
<th>Beach Name</th>
<th>Beach Activity Allowed</th>
</tr>";
echo "<tr>";
echo "<td>" . $row['bname'] . "</td>";
echo "<td>" . $row['act_type'] . "</td>";
echo "</tr>";
echo "</table>";
}
} else {
echo "No Search Results";
}
$conn=newmysqli('localhost','test','beachproject');
如果(!$conn){
die('DB连接错误');
}
$search=$_POST['search'];
$search\u sql=“选择`beach`.`bname`、`beach\u act\u type`.`act\u type`”
从'beach'内部连接'beach\u act\u types'
在'beach'。'bname`='beach\u act\u type`.'bname`
其中'beach`.'bname`='$search';
$search\u query=$conn->query($search\u sql);
如果($search\u query->num\u rows>0){
而($row=$search\u query->fetch\u assoc()){
回声“
海滩名称
泳滩开放
";
回声“;
回显“$row['bname']”;
回显“$row['act_type']”;
回声“;
回声“;
}
}否则{
回显“无搜索结果”;
}
您只是在对两个单独的表数据进行crrating,而这两个表数据不会给出您想要的结果,请尝试下面的代码
无法在不同的表数据中获取“,”。
试试这个
<?php $conn = new
mysqli('localhost','test','','beachproject');
if (!$conn) { die('DB Connection
Error'); }
$search = $_POST['search'];
$search_sql="select `beach`.`bname`,
`beach_act_type`.`act_type` from
`beach` inner join `beach_act_types` on
`beach`.`bname`=`beach_act_type`.`
bname` where
`beach`.`bname`='$search'";
$search_query=$conn
>query($search_sql);
if ($search_query->num_rows > 0) {
while($row = $search_query
>fetch_assoc()) { echo "<table
border='1' cellpadding='4'>
<tr> <th>Beach Name</th> <th>Beach
Activity Allowed</th> </tr>"; echo "<tr>";
echo "<td>" . $row['bname'] . , .
$row['act_type']"</td>"; echo "</tr>";
echo "</table>"; } } else { echo "No
Search Results"; } ?>
您要查找的函数是
组\u CONCAT
SELECT
`beach`.`bname`,
GROUP_CONCAT(`beach_act_types`.`act_type`) types
FROM
`beach`
INNER JOIN
`beach_act_types` ON
`beach`.`bname` = `beach_act_types`.`bname`
WHERE
`beach`.`bname` = '$search'
PS。应该警告你有SQL注入的存在,考虑切换到准备好的语句。
你的回车键坏了吗?@nogad是的,我的回车键坏了,请复制并添加你自己。答案是irrelevant@AliveColdJuan以这样的态度,你是不会提升的。你的答案不可读,因此没有人会给出具体的答案。@AliveColdJuan第一:学习如何编写可读代码,第二:尝试实际阅读和理解问题,然后改变你的态度,然后看看下一个答案,试着从中学习:)警告:当使用
mysqli
时,您应该使用and将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将$\u POST
、$\u GET
或任何用户数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。