我在DB中有以下表格:
id | letter
---|--------
1 | A, B, C
2 | D, E, F
3 | A, C, E
4 | B, D, F
5 | G, I
6 | H
PHP代码:
<?php
require_once './conn.php';
$sql = "SELECT DISTINCT letter FROM letters ORDER BY letter ASC";
$res = mysql_query($sql);
if (mysql_num_rows($res) === 0 || mysql_num_rows($res) === NULL) {
echo '0 result(s)';
} else {
// while ($row = mysql_fetch_assoc($res)) {
while ($row = mysql_fetch_assoc($res)) {
echo $row['letter'] . ' / ';
}
}
?>
好的,我会试着解释一下: 如果我运行上面的代码,它会返回A,B,C / D,E,F / A,C,E / B,D,F / G,I / H. 每组字母都是一个数组,哇,我发现了火。现在的问题是: 如何将所有结果放入单个数组和列表中,以便结果为A,B,C,D,E,F,G,H,I?
答案 0 :(得分:0)
要添加评论,强烈建议不要使用mysql
扩展名。它不支持预处理语句,您将在没有它们的情况下在代码中编写SQL注入漏洞。我知道这可能不会。然而,大多数都属于它。默认安全总是更好。
现在,你的愿望,无论是否是一个好主意:
$letters = array();
while ($row = mysql_fetch_assoc($res)) {
$letters = array_merge($letters, preg_split('/\s*,\s*/', trim($row['letter'])));
}
$letters = array_unique($letters);
sort($letters);