如果我使用 MySQLi
使用 PHP 查询数据库, 如何检测字母表中每个字母的第一个实例?
如果我有一张像这样的 table -
ID | name
1 Allen
2 John
3 Sally
4 William
我查询
SELECT * FROM table ORDER BY name ASC
我可以在我的循环中添加一些内容吗?“如果这是你第一次看到 name
中以字母 A 开头的字符串”,echo <a id="a"></a>
创建 anchor 标记?然后它将继续对 B、C、D、E、F、G 等执行相同的操作。然后我可以创建一个按字母顺序排列的图例。
这是我的查询和循环:
$query = "SELECT * FROM table ORDER BY name ASC";
$result = $db->query($query);
$num = $result->num_rows;
for($i=0; $i < $num; $i++){
$row = $result->fetch_object();
//IF THIS IS THE FIRST TIME SEEING $row->name START
//WITH A DIFFERENT LETTER OF THE ALPHABET ECHO SOMETHING...
echo $row->name;
}
最佳答案
创建一个关联数组来记录您看到的字母。
$letters_seen = array();
while ($row = $result->fetch_object()) {
$letter = substr($row->name, 0, 1);
if (!isset($letters_seen[$letter])) {
// This is the first time seeing this initial letter
$letters_seen[$letter] = true;
echo "<a id='$letter'>$letter</a>";
}
echo $row->name;
}
关于PHP Loop Detect First Instance of each Letter of MySQL 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25656061/